【问题标题】:Clicking on an element in python with selenium用硒单击python中的元素
【发布时间】:2021-03-05 18:58:25
【问题描述】:

我正在尝试创建一个机器人,将 4k 电视添加到我在 BestBuy 上的购物车中,以此自学硒。我无法将我的“元素”变量与 BestBuy 网站上的按钮相关联。我一直在浏览一些论坛,但找不到有效的解决方案。我通过BestBuy website的HTML找到了该元素。

这是我认为在 chrome 中查找元素的图像:

这是我的python代码(请原谅我今天刚开始学习Selenium的代码有点草率):

from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By

PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)

driver.get("https://www.bestbuy.ca/en-ca/product/samsung-75-4k-uhd-hdr-led-tizen-smart-tv-un75tu6900fxzc-2020-titan-grey-only-at-best-buy/14930256")
while True:
    if ("Add to Cart" in driver.page_source):
        print("In stock")
        element = driver.find_element_by_id("button_2Xgu4 primary_oeAKs.addToCartButton_1DQ8z.addToCartButton.regular_cDhX6")
        element.click()
        break
    else:
        print("Not in stock")
    driver.get("https://www.bestbuy.ca/en-ca/product/samsung-75-4k-uhd-hdr-led-tizen-smart-tv-un75tu6900fxzc-2020-titan-grey-only-at-best-buy/14930256");
        
    
    

【问题讨论】:

    标签: python selenium bots


    【解决方案1】:

    您使用了find_element_by_id,并且使用了类名而不是元素的 id。但是该元素没有任何 id,因此您必须使用 find_element_by_class_namefind_element_by_css_selector。 我复制了您的代码并使用了类名。那没用,所以我使用了css选择器。这很有效。

    给你:

    element = driver.find_element_by_css_selector("div[class='addToCartLabel_1eyxz']")
    element.click()
    

    您可以了解更多关于查找元素Here

    【讨论】:

      猜你喜欢
      • 2018-11-21
      • 1970-01-01
      • 2018-02-07
      • 2017-12-26
      • 2018-07-07
      • 2020-04-18
      • 2016-08-23
      • 2020-05-20
      • 2019-01-26
      相关资源
      最近更新 更多