Selenium + Python: InvalidSelectorException для локатора xpath - PullRequest
0 голосов
/ 08 октября 2018

Я использую Pycharm с моими автотестами Python для одностраничного приложения, где у меня есть страница пользователей, где есть блок пользователей с некоторыми полями ввода.Итак, html-код одного из полей:

<div data-v-1f9916c7="" class="el-input">

Когда я использую Python-консоль Python с окном выполненного geckodriver для отладки некоторых вещей, я пишу: wd.find_element_by_xpath("(//input[@type='text'])[4]").send_keys("123456") и все работает - я вижу цифры внужное поле ввода.Затем я возвращаюсь к своему коду авто-тестов, где мы используем PageObject с локаторами, и мой локатор выглядит так: NAME = (By.XPATH,"(//input[@type='text'])[4]"), а метод класса выглядит так:

class UsersPage(BasePage):
    def set_name(self, name):
        self.driver.find_element(*UsersPageLocators.NAME).send_keys(name)

И затем я запускаю свои тесты(также в PyCharm) и получите ошибку: selenium.common.exceptions.InvalidSelectorException: Message: Given xpath expression "//input[@type='text'])[4]" is invalid: SyntaxError: The expression is not a legal expression. HTML-код для этого элемента не имеет ничего особенного:

<div data-v-1f9916c7="" class="el-input">
<input type="text" autocomplete="off" class="el-input__inner">
</div>

Пожалуйста, помогите мне понять, почему локатор xpath действителен в консоли python и недопустим в самих тестах?Может быть из-за разного типа использования «по»: find_element_by_xpath и By.XPATH?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...