繁体   English   中英

按钮不可点击 selenium python

[英]Button not clickable with selenium python

我一直在尝试使用 selenium 单击按钮,但它一直说该元素不可交互,即使它在屏幕上可见,我可以手动单击它。 我尝试了 webdriverwait、隐式等待和许多其他解决方案,但似乎都没有。 请任何人都可以提供解决方案。 我附上了按钮代码和我自己的代码。

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options 
browser = webdriver.Chrome('')
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--disable-popup-blocking")
browser.implicitly_wait(10)
browser.get('https://www.aldi.co.uk/kirkton-house-high-back-desk-chair/p/709360437078000')
browser.maximize_window()
buybutton = False

while not buybutton:
    try:
        addToCartBtn = addButton = browser.find_element_by_class_name('disabled')
        print("Button isn't ready yet.")
        time.sleep(1)
        browser.refresh()
    except:
        time.sleep(2)
        addToCartBtn = addButton = browser.find_element_by_xpath('//*[@id="addToBasketButton"]')
        addToCartBtn.click()
        
     
        buybutton = True

 <div class="product-details__selectButton" data-component="productAdder"> <span class="js-sticky-atc__anchor"></span> <button class="product-details__cta js-product-cta button button--big button--rectangle button--transactional" type="submit" data-sku="709360437078000" data-limit="" data-limit-error="Sorry, you can only purchase 10 of this item." data-stock="inStock" data-stock-error="Out of stock" data-stock-pack-cta1="true" data-stock-pack-cta2="true" data-csrftoken="207d2b40-a785-40b6-89cd-987eba44a31c" data-is-buy-online="true" data-api="/api/cart/add" data-purchase-disabled="" aria-label="Add Kirkton House High Back Desk Chair to the basket" aria-controls="minicart-trigger" id="addToBasketButton"> <span class="js-product-cta-label" data-product-added="PRODUCT ADDED"> ADD TO BASKET</span> <svg class="icon icon--basket"> <use xlink:href="/assets/8b290d70406f652780c7cc1c72fe4a88/dist/icons/sprite.symbol.svg#basket"></use> </svg> </button> </div>

使用带有ID addToBasketButtonxpath有两个 web 元素:

使用这个CSS_SELECTOR代替:

ul.product-details__list.product-details__list--errors+form div.product-details__selectButton button

试试这个 xpath:

driver.find_element_by_xpath(".//ul[contains(@class,'errors')]//following::form[contains(@class,'product-form')]//button[@id='addToBasketButton']").click()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM