Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用selenium设置Amazon产品页面的大小?_Python_Selenium_Amazon - Fatal编程技术网

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

Python 如何使用selenium设置Amazon产品页面的大小?,python,selenium,amazon,Python,Selenium,Amazon,我制作了一个python程序,我想将产品的大小设置为单击AddtoCart按钮。所以为了启用,我应该设置大小。如何使用selenium键设置大小?此外,我希望该程序适用于不需要设置尺寸的产品,该程序适用于此类产品(例如) 因此,我想设置大小以启用“添加到购物车”。代码应该在这一行之后(driver.get(url))。我附加了这个程序。我将感谢任何帮助 from selenium import webdriver from time import sleep from selenium.webd

我制作了一个python程序,我想将产品的大小设置为单击AddtoCart按钮。所以为了启用,我应该设置大小。如何使用selenium键设置大小?此外,我希望该程序适用于不需要设置尺寸的产品,该程序适用于此类产品(例如)

因此,我想设置大小以启用“添加到购物车”。代码应该在这一行之后
(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()

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


您可以通过id直接获取项目大小,但首先,您需要单击“大小”菜单

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()
检查页面上是否有可添加的菜单

if driver.find_element_by_id('dropdown_selected_size_name') != 0:


您所说的启用“添加到购物车”按钮是什么意思?我需要启用才能单击它。现在需要设置大小。那么,如何使用selenium以编程方式设置大小呢?现在您无法单击添加到购物车。请尝试在
driver.get(url)
之后添加
sleep(3)
。我添加了sleep(3),但它说要购买,请在添加到购物车按钮上方选择大小。这是一件T恤,所以我需要设定尺寸。你应该重写并澄清你的问题。。。听起来你的实际问题应该是“我如何选择尺寸?”更清楚。一旦你这么做了,把代码贴在你试图设置大小的地方。我没有看到你目前发布的代码。将代码限制为。Amazon不提供select html标记,因此在这种特定情况下无法使用select。你确定吗?在声明(-1)是我做的之前,你最好再检查一遍,然后我尝试使用Select来再次检查HTML源代码,你会发现
hmm,我没有注意到我使用了这个if驱动程序。按id查找元素('dropdown\u selected\u size\u name')!=0:我在这里添加了您编写的程序,以检查它是否出现在t恤页面上,但它不起作用。我使用else,在这条语句中我编写了这个代码驱动程序。通过xpath('/*[@id=“submit.add to cart”]/span/input')查找元素。如果它在另一个页面上,请单击()添加到购物车。你能给我看一下if/else以检查t恤页上是否有,或者没有该id的其他页上是否有?因为它不起作用。@AndreiGhervan,如果您想在设置大小后立即单击“添加到购物车”按钮,您可以显式地等待按钮可单击。检查更新代码好的,我会检查的,谢谢!我怎样才能做一个if语句来检查它是否出现在t恤页面或其他没有产品尺寸的页面上?我的意思是,这个程序应该适用于这种没有尺寸的产品()和这种有尺寸的产品(),只需使用
try
/
除了
构造来检查select nodeOk的存在,我将尝试这个。非常感谢。
if driver.find_element_by_id('dropdown_selected_size_name') != 0:
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()