【问题标题】:Find and click element based on @onclick w/ Selenium查找并单击基于 @onclick w/ Selenium 的元素
【发布时间】:2019-02-10 22:43:04
【问题描述】:

我正在尝试在 Python 中使用 Selenium 查找具有如下 html 的元素:

<td class="td1" onclick="window.location.href = 'work_area.php?SID';">Work area</td>

包含在一个简单的&lt;tr&gt;&lt;/tr&gt; 标记中。

我尝试过使用

work_area = driver.find_element_by_css_selector('td[contains(@onclick, "work_area.php?SID"]')

并使用绝对 xpath

work_area = driver.find_element_by_xpath("/html/body/table/tbody/tr[2]/td[1]/div/table/tbody/tr[2]/td/table/tbody/tr[3]/td")

我的按钮结构:

+---------------------+
|       Menu          |
+---------------------+
|     Work Area       |
+---------------------+
|     Details         |
+---------------------+

我使用的是 Python 3.6,Selenium 是最新的,有什么建议吗? 我还尝试了可以​​在 stackoverflow 上找到的不同建议,但没有任何帮助。

【问题讨论】:

  • “我也试过所有的版本”...究竟是哪个?
  • pastebin.com/fpsesdyc这里,这些是被建议或提到类似问题的“所有版本”,我可以提供链接*
  • 不,我的意思是你的实现。除了定位元素,您还尝试过什么?分享代码
  • 我只尝试过使用 Selenium,我知道 BeatifulSoup 和其他模块。我会编辑:)
  • 您尝试过显式/隐式等待吗?您是否检查过元素是否位于 iframe 内?

标签: python html selenium selenium-chromedriver


【解决方案1】:

您可以使用以下定位器:

driver.find_element_by_css_selector("td[onclick*='work_area']")
driver.find_element_by_xpath("//td[.='Work area']")

您下面的代码不正确,定位器是 xpath 并且您使用 css 选择器:

work_area = driver.find_element_by_css_selector('td[contains(@onclick,"work_area.php?SID"]')

【讨论】:

    猜你喜欢
    • 2020-04-04
    • 2017-07-09
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多