Как выбрать элемент, используя селен, из длинного выпадающего списка? - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь нажать на элемент, скажем, список стран из выпадающего списка, но я могу щелкнуть только первые несколько стран, используя xpath, когда я пытаюсь нажать на последнюю страну, кажется, щелчок неработает. Вот код (он работает для первых нескольких стран, но я хочу нажать на последнюю страну из выпадающего списка) Если кто-то поможет мне, это будет оценено!

from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wait
import time


driver = webdriver.Chrome()
driver.get('https://www.example.com/dropdown')

##click accept cookies button
wait(driver, 5).until(EC.visibility_of_element_located(
    (By.XPATH, '//div[@class="cookie-button-wrapper"]'))).click()

##time delay
time.sleep(20)

##click on specific country from the dropdown
wait(driver, 5).until(EC.visibility_of_element_located(
    (By.XPATH, '//div[@class="tv-dropdown__button tv-dropdown-behavior__button tv-screener-market-select__button js-screener-market-button apply-common-tooltip common-tooltip-fixed"]'))).click()
wait(driver, 5).until(EC.visibility_of_element_located(
    (By.XPATH, '//*[@data-market="argentina"]'))).click() 

1 Ответ

0 голосов
/ 24 октября 2018

Сначала попробуйте прокрутить до элемента:

from selenium.webdriver.common.action_chains import ActionChains

element = driver.find_element_by_xpath("//*[@data-market='italy']")
actions = ActionChains(driver)
actions.move_to_element(element).perform()

Затем попробуйте щелкнуть по нему, используя последнюю часть вашего кода:

wait(driver, 5).until(EC.visibility_of_element_located((By.XPATH, '//*[@data-market="italy"]'))).click() 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...