Невозможно выбрать значение из выпадающего меню - PullRequest
0 голосов
/ 08 марта 2019

enter image description here Итак, я получаю данные с этого сайта Верховный сайт .Пользователь уже определил элемент и цвет, который было легко выяснить.Теперь я не могу понять, как выбрать размер из выпадающего меню.Я пробовал этот код и другие различные варианты, но они, кажется, не работают

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 голосов
/ 08 марта 2019

Вы можете использовать xpath и щелкнуть опцию напрямую.

driver.find_element_by_xpath('//select[@id="s"]//option[normalize-space(.)="XLarge"]').click()
0 голосов
/ 08 марта 2019

Вы можете подождать, пока кликабельность для родителя, а затем наличие опции. Вы можете выбрать опции по их атрибуту 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"]
0 голосов
/ 08 марта 2019

Ваш 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')
...