【问题标题】:Unable to locate element with Selenium that is clearly there无法找到明显存在的 Selenium 元素
【发布时间】:2022-01-04 22:24:54
【问题描述】:

因此,我正在开发一个程序,该程序将使用 Selenium 和 chromedriver 从 target 在线购买商品,一旦有库存。

但是,我似乎找不到某个按钮,我不知道为什么;它总是出现错误消息,“没有这样的元素:无法找到元素。”

有问题的按钮是“查看购物车和结帐按钮”。

这是我现在拥有的代码,虽然我也尝试通过 xpath 找到它,但它会显示相同的消息。

time.sleep(10)
addtocartstr= 'body > div:nth-child(46) > div > div > div > div > div > div > div.Row-sc-uds8za-0.iNenuU.h-margin-v-default > div:nth-child(3) > button'
driver.find_element(By.CSS_SELECTOR, addtocartstr).click()

我一直在使用这种胶水来测试我的程序:https://www.target.com/p/elmer-39-s-1gal-washable-school-glue-white/-/A-47987964 如果您点击“Ship it”,就会弹出相关按钮。

非常感谢大家!

【问题讨论】:

    标签: html selenium xpath css-selectors selenium-chromedriver


    【解决方案1】:

    能够使用以下代码单击 查看购物车和结帐 按钮。尝试以下定位器。 最好申请一些等待。

    # Imports required
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    driver.get("https://www.target.com/p/elmer-39-s-1gal-washable-school-glue-white/-/A-47987964")
    
    wait = WebDriverWait(driver,30)
    
    # Click on "Ship it"
    wait.until(EC.element_to_be_clickable((By.XPATH,"//button[@data-test='shipItButton']"))).click()
    
    # Click on "View cart & checkout"
    wait.until(EC.element_to_be_clickable((By.XPATH,"//button[@data-test='addToCartModalViewCartCheckout']"))).click()
    

    【讨论】:

    • @Smoothie - 如果答案有帮助,请接受。
    猜你喜欢
    • 2021-08-15
    • 1970-01-01
    • 2015-03-06
    • 2018-08-01
    • 2013-09-16
    • 2018-03-31
    • 2016-01-22
    • 1970-01-01
    相关资源
    最近更新 更多