[英]Can't click a button in Selenium
這是 paypal 按鈕!
我正在嘗試單擊從禁用到啟用的按鈕。 它的按鈕屬性也顯示為禁用。
<button class="button_E6SE9 primary_1oCqK continue-to-review regular_1jnnf" type="submit" data-automation="review-order" xpath="1"><span class="content_3Dbgg" tabindex="-1">Continue</span></button>
它從以下變化:
<button disabled class> to <button class>
所以,我正在考慮等待屬性更改,然后使用 to_be_clickable 單擊按鈕
continuebtn = WebDriverWait(driver, 10).until
(EC.element_to_be_clickable((By.XPATH, "//span[contains(text(),'Continue')]")).click()
print("clicked")
它打印 clicked 表示執行了上述步驟,但沒有點擊頁面上的“繼續”按鈕。 我以前也可以,但是,我編輯了幾次代碼,現在我無法修復它。
看來這個元素給你帶來了一些麻煩......
你能等到元素可以使用 Selenium 來點擊,但使用 JavaScript 來點擊按鈕? 這行得通嗎?
driver.execute_script("var continue_button = document.querySelector('button.continue-to-review'); continue_button.click()")
嘗試這個:
driver.find_element_by_xpath('//button[@type="submit"]').click()
如果你想確定它是否點擊正確,你應該像這樣使用:
if driver.find_element_by_xpath('//button[@type="submit"]').click():
print('Clicked!')
else:
print('Element Not Found!')
我希望我能幫助你
可能的解決方案,但很難在沒有看到鏈接的情況下進行測試。
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//button[@class="button_E6SE9 primary_1oCqK continue-to-review regular_1jnnf" and not(@disabled)]')))
另外,嘗試使用
wait.until(EC.invisibility_of_element_located((By.CSS_SELECTOR, "button[disabled][class*='continue-to-review']")))
並單擊帶有上方定位器或任何其他較短定位器的此按鈕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.