使用python和selenium从javascript span中选择选项

使用python和selenium从javascript span中选择选项,python,selenium,Python,Selenium,我正在尝试生成一个机器人来自动从沃尔玛下订单,但似乎我无法选择颜色和数量,因为它们不是真正的选择器,也没有id。 我正在使用python和selenium 目前用于测试的项目是: 关于数量,我认为我可以选择以下列表: quantity = walmart.find_element_by_css_selector("span.product-quantity-dropdown-wrapper") 但是在那之后,我就不能选择数量了。就数量而言,您可以操作实际的select元素(通过),该元素没有

我正在尝试生成一个机器人来自动从沃尔玛下订单,但似乎我无法选择颜色和数量,因为它们不是真正的选择器,也没有id。 我正在使用python和selenium

目前用于测试的项目是:

关于数量,我认为我可以选择以下列表:

quantity = walmart.find_element_by_css_selector("span.product-quantity-dropdown-wrapper")

但是在那之后,我就不能选择数量了。

就数量而言,您可以操作实际的
select
元素(通过),该元素没有被视觉检测到,但实际上是可见的。至于颜色,您可以动态构造XPath表达式来“按名称”定位颜色

完成工作实施(选择白色,数量=2):


这就是说,确保您没有违反任何使用条款,并遵守法律。还要确保探究(请参阅@MattDMo的评论)。

寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请看:。您考虑过使用吗?我认为沃尔玛API只用于查询,而不是用于实际购买阅读。在显示的响应中,有标题为
productUrl
addToCartUrl
的键和其他键。
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver


driver = webdriver.Chrome("/usr/local/bin/chromedriver")
driver.maximize_window()
driver.get("https://www.walmart.com/ip/8-x10-Picture-Frames-Set-of-6/10404226")

color = "White"
quantity = 2

wait = WebDriverWait(driver, 10)

# select color
color_selector = wait.until(EC.visibility_of_element_located((By.XPATH, "//span[@class = 'variant-swatch' and @title='{color}']/..".format(color=color))))
color_selector.click()

# harcode delay - see if you can avoid it
time.sleep(0.5)

# select quantity
quantity_selector = wait.until(EC.visibility_of_element_located((By.ID, "WMItemQtyDropDown")))
quantity_selector = Select(quantity_selector)
quantity_selector.select_by_value(str(quantity))