无法从下拉菜单中选择值

时间:2019-03-08 06:12:15

标签: python selenium web-scraping selenium-chromedriver bots

enter image description here,所以我正在从该网站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不起作用。您还会尝试其他哪些建议和方式。谢谢。

3 个答案:

答案 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"]