簡體   English   中英

如何使用 Python Selenium 點擊搜索按鈕

[英]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_NAMEXPATHLINK_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM