Поле ввода Selenium Select, которое меняет название каждой сессии - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь получить доступ к текстовому полю поиска в системе ERP нашей компании, используя Selenium. На снимке экрана показано текстовое поле и Xpath элемента.

Это немного сложно, потому что всплывающее окно Menu Search на самом деле не всплывающее. Это как-то проявляется, когда пользователь вводит Control + M.

Установив ChroPath и протестировав, я обнаружил, что текстовое поле всегда начинается со следующей строки:

txtMenuSearch_Namespace_

Я пытался подражать тому, что описано здесь , здесь и здесь без удачи.

Последняя попытка во фрагменте моего кода выглядит следующим образом:

menu_search_input_box_elements = driver.find_elements_by_xpath("//*[contains(@id, ‘txtMenuSearch_Namespace_’)]")
for item in menu_search_input_box_elements:
    print(item)

Я получаю следующее сообщение об ошибке:

SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//*[contains(@id, ‘txtMenuSearch_Namespace_’)]' is not a valid XPath expression.

Во всех моих попытках получить правильный синтаксис я продолжаю получать это сообщение. Любая помощь в выяснении, как .send_keys() в этом поле, очень ценится.

enter image description here

1 Ответ

1 голос
/ 20 января 2020

Вы получаете ошибку из-за кавычек ‘’, замените их правильными.

# id starts with txtMenuSearch_Namespace_
menu_search_input_box_elements = driver.find_elements_css_selector("[id^='txtMenuSearch_Namespace_']")


menu_search_input_box_elements = driver.find_elements_by_xpath("//*[contains(@id, 'txtMenuSearch_Namespace_')]")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...