,所以我正在从该网站Supreme Website获取数据。用户已经定义了项目和颜色,很容易弄清楚。现在,我无法确定如何从下拉菜单中选择尺寸。我已经尝试过此代码和其他不同的变体,但是它们似乎不起作用
while True:
try:
select = Select(driver.find_element_by_xpath('//*[@id="s"]'))
select.select_by_visible_text("XLarge")
break
except (NoSuchElementException):
wait=WebDriverWait(driver, 10)
waitBis=wait.until(EC.presence_of_element_located((By.ID, 'time-zone-name')))
driver.refresh()
因此select_by_visible_text不起作用。您还会尝试其他哪些建议和方式。谢谢。
答案 0 :(得分:0)
您的xpath不正确。而且使用webdriverwait也会有所帮助。
尝试一下:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_condition as EC
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://www.supremenewyork.com/shop/jackets/fwpckrdv5/kwam2t7jh?alt=1')
select = Select(WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//select[@id="size"]'))))
select.select_by_visible_text('XLarge')
答案 1 :(得分:0)
您可以使用xpath并直接单击该选项。
driver.find_element_by_xpath('//select[@id="s"]//option[normalize-space(.)="XLarge"]').click()
答案 2 :(得分:0)
您可以等到可单击父项,然后再单击选项。您可以通过其value
属性选择选项
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
#other code
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#s"))).click()
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, '#s [value="65382"]'))).click() #Possibly just [value="65382"]