[英]Selenium Click A Button, Using Python
我試圖解決這個問題一段時間 - 沒有運氣。
我想點擊這個按鈕:
<button name="showMoreButton" data-test-id="show-more-button" aria-label="Show More" type="button" class="uitk-button uitk-button-medium uitk-button-has-text uitk-button-primary">Show More </button >
我一直在嘗試這樣的事情,我發現到處都是,但沒有一個工作:
element_to_click = driver.find_element(By.xpath("//button[@data-test-id='show-more-button']").click() element_to_click = driver.find_element(By.cssSelector(".uitk-button uitk-button-medium uitk-button-has-text uitk-button-primary")).click()
我認為第一次失敗是因為 Selenium 似乎無法處理“data-test-id”——這讓我感到奇怪的弱點......
我不明白為什么會發生第二次失敗。
非常感謝您的幫助。
艾莉好狗
有很多方法可以解決這個問題。 這是一個可靠的解決方案。
使用顯式等待
wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.NAME, 'showMoreButton')))
element.click()
您需要從以下行導入:
from selenium.webdriver.support import expected_conditions as EC
或者,如果您想使用 XPATH 或 CSS_SELECTOR,那么您可以嘗試如下所示:
CSS:
element_to_click = driver.find_element(By.CSS_SELECTOR, "button[name='showMoreButton'].uitk-button.uitk-button-medium.uitk-button-has-text.uitk-button-primary")
element_to_click.click()
XPATH:
element_to_click = driver.find_element_by_xpath("//button[contains(text(),'Show More')]")
element_to_click.click()
請使用如下代碼。 您缺少一個括號並錯誤地編寫了.find_element 方法。
driver.find_element_by_xpath("//button[@data-test-id='show-more-button']").click()
您也可以使用如下
driver.find_element_by_css_selector(".uitk-button uitk-button-medium uitk-button-has-text uitk-button-primary").click()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.