【发布时间】:2020-12-22 08:37:39
【问题描述】:
我有一个表,其中有几行 SiteName 1,2 等等,每个站点名称旁边都有编辑按钮。我想要一个点击所有编辑按钮的循环。但是,当我想单击某些按钮时出现错误,并且只有一些按钮可以正常工作,但是所有行的代码与您在下面看到的示例完全相同。
wls = ["//*[contains(text(), 'SiteName 8')]//following-sibling::td//a[contains(., 'Edit')]",
"//*[contains(text(), 'SiteName 2')]//following-sibling::td//a[contains(., 'Edit')]",
"//*[contains(text(), 'SiteName 1')]//following-sibling::td//a[contains(., 'Edit')]"]
for i in wls:
# WL list
driver.find_element_by_xpath(i).click()
这是我正在使用的以下兄弟,它适用于站点 1、2、3 等,但不适用于站点 8。
我收到此错误消息消息:
selenium.common.exceptions.ElementClickInterceptedException:消息:元素点击被拦截:元素 ... 在点 (1783, 946) 处不可点击。其他元素会收到点击:...
我也尝试找到完整的 xpath,但仍然收到相同的错误消息,但是按钮 Edit 是可点击的,并且链接有效且有效。
<tr>
<td class="application_name alt" align="left">SiteName 1</td><td class="alt action">
<div class="list-action">
<a class="btn default " href="https://link1.com">
<i class="fa fa-fa fa-edit">::before</i>
Edit
</a>
</div>
</td>
</tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>
<td class="application_name alt" align="left">SiteName 8</td>
<td class="alt action"><div class="list-action">
<a class="btn default " href="https://link8.com">
<i class="fa fa-fa fa-edit">::before</i>
Edit
</a>
</div>
</td>
</tr>
【问题讨论】:
-
可以分享链接吗?
-
我可以但不能让你打开它,因为它只是本地的。
-
基本上,如果它重叠,我们使用 javascript 执行器,如果它在 iframe 中,我们会预先切换到它。