[英]How to click on Search button using Python Selenium
我正在尝试在 selenium webdriver 和 python 的帮助下单击搜索按钮
这是HTML代码
<button data-testid="search-button" tabindex="4" type="submit" class="sc-2ry4jn-0
sc-2ry4jn-2 sc-17kxwsy-0 bWjDpN" xpath="1"><div data-testid="icon-testid" class="sc-
121424n-0 loEDwb"><div class="sc-121424n-2 jFTWvP"><span class="sc-1kvy6kt-0 jTNjLr sc-
121424n-3 gCitZe" data-testid="icon:icon-jameda-SVG-icon-Search" color="#fff"><svg><use data-testid="svgcontainer-use" xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:href="#icon-jameda-SVG-icon-Search"></use></svg></span></div><div color="#fff" class="sc-121424n-1 hGbob">Suchen</div></div></button>
<div data-testid="icon-testid" class="sc-121424n-0 loEDwb" xpath="1"><div class="sc-
121424n-2 jFTWvP"><span class="sc-1kvy6kt-0 jTNjLr sc-121424n-3 gCitZe" data-
testid="icon:icon-jameda-SVG-icon-Search" color="#fff"><svg><use data-
testid="svgcontainer-use" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-
jameda-SVG-icon-Search"></use></svg></span></div><div color="#fff" class="sc-121424n-1
hGbob">Suchen</div></div>
<div class="sc-121424n-2 jFTWvP" xpath="1"><span class="sc-1kvy6kt-0 jTNjLr sc-121424n-3
gCitZe" data-testid="icon:icon-jameda-SVG-icon-Search" color="#fff"><svg><use data-
testid="svgcontainer-use" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-
jameda-SVG-icon-Search"></use></svg></span></div>
<span class="sc-1kvy6kt-0 jTNjLr sc-121424n-3 gCitZe" data-testid="icon:icon-jameda-SVG-
icon-Search" color="#fff" xpath="1"><svg><use data-testid="svgcontainer-use"
xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-jameda-SVG-icon-Search">
</use></svg></span>
要查看整个 HTML 代码,请访问: www.jameda.de并查看右上角的绿色搜索按钮
我已经尝试通过CLASS_NAME
、 XPATH
、 LINK_TEXT
单击它,但我总是收到以下错误。
no such element: Unable to locate element:
这是我到目前为止使用的代码:
driver.find_element(by=By.CLASS_NAME, value="sc-2ry4jn-0 sc-2ry4jn-2 sc-17kxwsy-0 bWjDpN").click()
尝试单击该按钮时可见。
要单击元素Suchen ,您需要为element_to_be_clickable()诱导WebDriverWait ,您可以使用以下任一定位器策略:
使用CSS_SELECTOR :
driver.get('https://www.jameda.de/') WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button#CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll"))).click() WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "span[class^='SearchString']"))).click()
使用XPATH :
driver.get('https://www.jameda.de/') WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@id='CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll']"))).click() WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[contains(., 'Suchen')]"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
浏览器快照:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.