【问题标题】:How to get button path for click event in selenium如何获取硒中单击事件的按钮路径
【发布时间】:2018-11-10 19:56:24
【问题描述】:

使用 python 3 为按钮生成点击事件时遇到问题:

<div align="left"><input type="button" value="START WATCHING PAYED ADS" onclick="javascript:doarea(2)" style="width:400px;height:70px;fontsize:18px;font-weight:bold;color:blue"></div>

我试过这个-

driver.findElement(By.xpath('//*[@id="main"]/h2[2]/div/input')).click();

【问题讨论】:

  • 可以添加 HTML 吗?
  • 请提供您的HTML文档的相关部分,以便验证xpath是否正确。
  • 账户余额10.9 $




标签: javascript selenium xpath webdriverwait xpath-1.0


【解决方案1】:

根据您分享的 HTML,点击 按钮 value 作为 START WATCHING PAYED AD您可以使用以下代码行:

driver.find_element_by_xpath("//input[@value='START WATCHING PAYED ADS' and @type='button']").click()

更新

当您看到 NoSuchElementException 时,您需要诱导 WebDriverWait 以使 元素可点击,如下所示:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@value='START WATCHING PAYED ADS' and @type='button']"))).click()

【讨论】:

  • raise exception_class(message, screen, stacktrace) selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":" //input[@value='START WATCHING PAYED ADS' and @type='button']"} (Session info: chrome=66.0.3359.181) (Driver info: chromedriver=2.39.562718 (9a2698cba08cf5a471a29d30c8b3e12becabb0e9),platform=Windows NT 10.0.16299 x86_64)
  • @harsh 查看答案更新,粗略的 &lt;input&gt; 标签有一个属性 type="button"
【解决方案2】:

请参考https://www.guru99.com/xpath-selenium.html 了解基本的 xpath 知识。

在识别元素时最好不要使用索引,例如,您可以使用以下查询来做到这一点

*//input[@value="START WATCHING PAYED ADS"]

【讨论】:

  • 消息:无效选择器:无法使用 xpath 表达式 *//input[@value="START WATCHING PAYED ADS" 定位元素,因为以下错误:SyntaxError: 无法执行“评估” on 'Document': 字符串 '*//input[@value="START WATCHING PAYED ADS"' 不是有效的 XPath 表达式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-17
  • 1970-01-01
  • 1970-01-01
  • 2023-01-11
  • 2021-12-08
  • 1970-01-01
  • 2012-11-29
相关资源
最近更新 更多