Селектор Css или Xpath не может выбрать элемент списка - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь автоматизировать процесс на веб-сайте, который динамически генерирует идентификаторы для его элементов:

Идентификаторы имеют такую ​​форму: ZCODE: FORM: j_1279323: element

Мне удалось создать CSSили XPATH селекторы для большинства элементов. Я борюсь, хотя с элементом ul/li, на который мне удается щелкнуть его id, но не с относительным XPath, чего я и хочу достичь:

Я пробовал все виды xpath:/html[1]/body/[1]/div[37]/div[1]/ul[1]/li[13]

также: //div[contains(@id, 'voie_panel')]/div/ul/li[13]

И многие другие способы. Все селекторы xpath / css, которые я тестировал, отлично работают в консоли разработчика Chrome.

I onlyудается отбросить список вниз, но когда я пытаюсь получить доступ к элементу списка ... время ожидания истекло.

Я использую WebDriverWait, я также пытался приостановить программу в точной точкегде он должен быть загружен, чтобы щелкнуть по списку.

Я жду элемента с:

myElem = WebDriverWait(self.driver, 30).until(ec.element_to_be_clickable((BY.XPATH, css))

Чтобы подвести итог ситуации: он работает гладко с идентификатором, но время ожиданияс селектором xpath или css

Может кто-нибудь порекомендовать стратегию для преодоления этого?

1 Ответ

0 голосов
/ 08 ноября 2019

если вы используете веб-драйвер селена, вы можете добавить это к своему коду

    chrome_options = webdriver.ChromeOptions()
    scpathTemp = str(scpathTemp).replace('/', '\\').strip()
    preferences = {"safebrowsing.enabled": True}
    chrome_options.add_experimental_option("prefs", preferences)

    driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=master_path + "/chromedriver.exe")
    driver.find_element_by_xpath("/html[1]/body/[1]/div[37]/div[1]/ul[1]/li[13]").click()
...