python - 无法通过 selenium 驱动程序单击 javascript 元素
问题描述
我正在使用下面给出的 xpath,但我的脚本没有点击这些元素(python、scrapy、selenium)
driver.find_element(By.XPATH, '//*[@id="MiniReport2"]/thead/tr/td[@class="Over" and contains(@onclick,"MenuClick")]')
HTML 示例:
<table id="MiniReport2" border="0" cellspacing="0" cellpadding="0" class="Menu Unit" style="">
<thead>
<tr>
<td onmouseover="className='Over'" onmouseout="className=''" onclick="javascript:MenuClick('MiniReport2');" class="">
<div class="Plus">4. Report</div>
</td>
</tr>
</thead>
</table>
解决方案
欢迎来到 SO。
这是您可以使用的 xpath。
//table[@id='MiniReport2']//td[contains(@onclick,'MenuClick')]
这是脚本(我猜你正在使用python)
driver.find_element_by_xpath("//table[@id='MiniReport2']//td[contains(@onclick,'MenuClick')]").click()
如果你想点击4. Report
然后使用下面
driver.find_element_by_xpath("//table[@id='MiniReport2']//td[contains(@onclick,'MenuClick')]/div[normalize-space(.)='4. Report']").click()
推荐阅读
- asp.net - ASP.NET Core 2.1 为应用程序设置 appsettings.json 的 BasePath
- python - 如何在 django rest 框架中选择特定字段?
- c# - 使用 Prism 在 Xamarin 中未触发 DelegateCommand
- c++ - Node.js 中的 C++ 插件可以覆盖某些 V8 类或方法吗?
- php - 如何使用 AJAX 保存用户角色?
- syslog-ng - 忽略 syslog-ng 中的特定级别内核日志
- android - Pager-Adapter 在第一次调用时不显示数据
- docker - 使用私有 docker 映像部署 gcloud 应用程序
- dart - 底部居中容器中的一些小部件
- linux - Shell Script中的-n、-z、-x、-L、-d等是什么意思?