首页 > 解决方案 > 查找并单击基于 @onclick w/ Selenium 的元素

问题描述

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

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

包含在一个简单的<tr></tr>标签中。

我试过使用

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 上找到的不同建议,但没有任何帮助。

标签: pythonhtmlseleniumselenium-chromedriver

解决方案


您可以使用以下定位器:

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"]')

推荐阅读