簡體   English   中英

Selenium 點擊一個按鈕,使用 Python

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

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