如何使用selenium设置Amazon产品页面的大小?

2024-04-25 01:04:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我做了一个python程序,我想设置产品的大小,点击addtocart按钮。所以要启用,我应该设置大小。如何使用selenium键设置大小?另外,我希望这个程序适用于不需要设置大小的产品,这个程序适用于这种产品(例如this product

所以我想设置大小以启用添加到购物车。代码应该在(driver.get(url))之后。我附上了程序。我会很感激你的帮助。在

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.keys import Keys

proxies = {
    'http': 'http://217.119.82.14:8080',
    'https': 'http://196.27.107.30:8080',
}

url = "https://www.amazon.com/Disney-Stitch-Surfer-Adult-T-shrt/dp/B072VPQ1BG/ref=sr_1_4?ie=UTF8&qid=1517916607&sr=8-4&keywords=t+shrt"

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=%s' % proxies)

driver = webdriver.Chrome(executable_path="C:\\Users\Andrei\Downloads\chromedriver_win32\chromedriver.exe",
                          chrome_options=chrome_options)
driver.get(url)

driver.find_element_by_xpath('//*[@id="submit.add-to-cart"]/span/input').click()

Tags: fromhttpsimport程序httpurlget产品
2条回答

要设置所需大小,可以使用Select类:

from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

driver.get(url)
# Create new object for drop down
select = Select(driver.find_element_by_id("native_dropdown_selected_size_name"))
# Select "Small" size
select.select_by_visible_text("Small")
wait(driver, 5).until(EC.element_to_be_clickable((By.XPATH, '//input[@id="add-to-cart-button" and not(@style="cursor: not-allowed;")]'))).click()

您可以通过id直接获得项目的大小,但是首先,您需要单击size菜单

sizemenu = driver.find_element_by_id('dropdown_selected_size_name')
sizemenu.click()
select = driver.find_element_by_id('size_name_1') #Medium size
select.click()

检查页面上是否有可以添加的菜单

^{pr2}$
if driver.find_element_by_id('dropdown_selected_size_name') != 0:
    sizemenu = driver.find_element_by_id('dropdown_selected_size_name')
    sizemenu.click()

    sleep(5)   

    select = driver.find_element_by_id('size_name_1') #medium size
    select.click()
    print("select size")
else:
    print("do nothing")


sleep(5)    
button = driver.find_element_by_id('submit.add-to-cart')
button.click()

相关问题 更多 >