我正在尝试从以下网站复制数据:https://imljail.shelbycountytn.gov/IML.
该网站有两个按钮,都标有“搜索”。我要按下的按钮具有以下代码:
<table width="300" border="0" align="right" cellpadding="0" cellspacing="0">
<tr align="right" style="color: #000000;">
<td><a href = "javascript:setNameSearch()" onkeydown="keyDownNameSearch()"><img src = "../images/button_up_search.gif" alt = "Search Button" /></a> <a href = "javascript:resetNameSearch()" onkeydown="keyDownNameReset()"><img src = "../images/button_up_reset.gif" alt = "Reset Button" /></a></td></tr></table>
我不需要填写任何字段 - 当您将名称字段留空并单击按钮时,我想要的所有数据都会出现。
我一直在使用 Selenium 并且能够定位/加载页面,但无法找到正确的元素并单击它。关于如何指定此按钮的任何想法?谢谢!
import pandas as pd
import numpy as np
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('URL...)
driver_find_element(By. [tried ID, LINK_TEXT, PARTIAL_LINK_TEXT, etc.]
鉴于 HTML:
<table width="300" border="0" align="right" cellpadding="0" cellspacing="0">
<tr align="right" style="color: #000000;">
<td>
<a href = "javascript:setNameSearch()" onkeydown="keyDownNameSearch()">
<img src = "../images/button_up_search.gif" alt = "Search Button" />
</a>
<a href = "javascript:resetNameSearch()" onkeydown="keyDownNameReset()">
<img src = "../images/button_up_reset.gif" alt = "Reset Button" />
</a>
</td>
</tr>
</table>
要单击具有属性
<a>
的 alt = "Search Button"
元素,您需要为 element_to_be_clickable() 引入 WebDriverWait 并且您可以使用以下任一 定位器策略:
使用CSS_SELECTOR:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a[href*='setNameSearch'] > img[alt='Search Button']"))).click()
使用XPATH:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[contains(@href, 'setNameSearch')]/img[@alt='Search Button']"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC