Selenium + Python:xpath定位器的InvalidSelectorException

时间:2018-10-08 14:15:43

标签: python selenium xpath

我将Pycharm用于单页应用程序的Python自动测试,其中我有一个用户页面,那里有一个带有某些输入字段的用户块。 因此,该字段的html代码之一是:

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

当我使用带有已执行的geckodriver窗口的pycharm python控制台调试某些内容时,我会写: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控制台中有效,而在测试本身中无效?也许是因为使用“ by”的类型不同:find_element_by_xpathBy.XPATH

0 个答案:

没有答案