我想使用Selenium(在python中)将项目添加到我的Amazon购物车。具体来自如下页面: https://www.amazon.com/gp/offer-listing/B01GHQ02DK/ie=UTF8&condition=all **将此链接复制到您的浏览器中,不要直接点击。
如您所见,有多种选择可供选择添加到购物车。查看源代码,我无法确定如何点击按钮"这会将我想要的选择添加到购物车中(例如,让我说我想在列表中放下第二个)。非常感谢任何帮助,谢谢。
编辑:添加了我想要完成的示例代码。需要帮助填补空白。
from selenium import webdriver
url = "https://....**website posted above**"
driver = webdriver.Firefox()
driver.get(url)
def add2ndItemToCart():
# Don't know what to put here
add2ndItemToCart()
答案 0 :(得分:3)
有许多方法可以识别您要点击的按钮。一个简单的方法是获取它的xpath。 Chrome有一种方便的方法。右键单击按钮并选择“检查元素”。将打开一个新框架,并突出显示该按钮的HTML代码。右键单击此突出显示的行,然后选择复制并滑动以选择“复制XPath”。然后你可以使用find_element_by_xpath('xpath')。click()用你从inspect元素复制的东西替换'xpath'。参见代码示例:
from selenium import webdriver
from time import sleep
url = "https://www.amazon.com/gp/offer-listing/B01GHQ02DK/ie=UTF8&condition=all"
driver = webdriver.Chrome()
driver.get(url)
sleep(3)
driver.find_element_by_xpath('//*[@id="a-autoid-1"]/span/input').click()
我猜你在某些页面上寻找的内容并不总是最终成为第二项。当您检查html时,您可以看到每一行都有一些独特的信息,您可以轻松地遍历所有适当的元素,以选择适合您的那个;最好的价格,最高的评级等。W3Schools有一个非常好的XPath教程。
此外,使用sleep不是等待页面加载的最佳方式。我在这个例子中使用它是为了方便。
答案 1 :(得分:1)
你可以点击First“BY New”选项:
from selenium import webdriver
url="https://www.amazon.com/dp/B01GHQ02DK/"
driver=webdriver.Firefox()
driver.maximize_window()
driver.get(url)
driver.implicitly_wait(5)
driver.find_element_by_name('submit.add-to-cart').click()
对于“By used”,您必须先单击单选按钮,然后单击“添加到购物车”按钮,示例代码如下:
from selenium import webdriver
url="https://www.amazon.com/dp/B01GHQ02DK/"
driver=webdriver.Firefox()
driver.maximize_window()
driver.get(url)
driver.implicitly_wait(5)
driver.find_element_by_xpath(".//*[@id='usedBuySection']/i").click()
driver.find_element_by_name('submit.add-to-cart-ubb').click()
答案 2 :(得分:0)
使用selenium你只需要为按钮找到一个唯一的选择器(在这种情况下只是id),使用方法find_element_by_id,最后点击()来模拟点击:
driver.find_element_by_id('add-to-cart-button').click()