我在python中编写了一个与selenium结合使用的脚本,以启动对网页中某个链接的点击。我唯一的目的是点击该链接。我尝试了几种不同的方法,但我无法让它发挥作用。
链接到网页:URL
我试过的脚本:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)
driver.get("use_above_url")
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".k-selectable"))).click()
driver.quit()
可点击链接应位于其中的元素:
<div class="k-grid-content k-auto-scrollable">
<table class="k-selectable" data-role="selectable" role="grid" style="touch-action: none;">
<colgroup>
<col style="width:100px"/>
<col style="width:210px"/>
<col/>
<col/>
<col style="width:120px"/>
</colgroup>
<tbody role="rowgroup">
<tr class="rowHover" data-uid="1fccd732-cd65-4393-b1be-66786fe9ee60" role="row">
<td role="gridcell">
R016698
</td>
<td role="gridcell">
R-13-0410-0620-50000
</td>
<td role="gridcell" style="display:none">
O0485204
</td>
<td role="gridcell">
GOOCH, PHILIP L
</td>
<td role="gridcell">
319 LIZZIE ST, TAYLOR, TX 76574
</td>
<td role="gridcell" style="display:none">
DOAK ADDITION, BLOCK 62, LOT 5
</td>
<td role="gridcell" style="display:none">
T541
</td>
<td role="gridcell" style="display:none">
</td>
<td role="gridcell" style="display:none">
S3564 - Doak Addition
</td>
<td role="gridcell" style="display:none">
Real
</td>
<td role="gridcell">
<div style="text-align:right;width:100%">
$46,785
</div>
</td>
</tr>
</tbody>
</table>
</div>
如果您按照上述网址进行操作,则可以在该网页中看到包含此确切文字R016698 R-13-0410-0620-50000 GOOCH, PHILIP L 319 LIZZIE ST, TAYLOR, TX 76574
的一行。这是我想点击的地方。将鼠标悬停在该链接上时,会在链接上注意到阴影。希望很清楚我想做什么。提前谢谢。
答案 0 :(得分:2)
页面上有两个带有"k-selectable"
类的元素。第一个是隐藏的,所以等待EC.visibility_of_element_located
总是会失败...你需要处理第二个。所以只需应用更具体的选择器:
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".k-selectable tr[role='row']"))).click()