我想用 Webdriver 测试一个文本过滤器(用于 Python、Chrome 和 Firefox)。网页上有一个名称列表和一个输入字段。当用户键入文本时,名称列表被过滤,不包含键入文本的名称将被隐藏。当用户按下 Enter/Return 时,最佳匹配名称将被复制到另一个输入字段。首先我输入文本(必须使用 XPath):
textbox = browser.find_element_by_xpath(pathToInputField)
textbox.send_keys(text)
然后检查列表(稍微简化):
for name in names:
xpath = "//div[contains(text(), '{0}')]".format(name)
elmIsDisplayed = browser.find_element_by_xpath(xpath).is_displayed()
if (text in name):
self.assertTrue(elmIsDisplayed)
else:
self.assertFalse(elmIsDisplayed)
到目前为止,它工作正常。之后,我尝试按 Enter/Return:
textbox.send_keys(Keys.RETURN)
但是输入字段(由文本框或 find_element_by_xpath 访问)不会得到任何键(既没有返回也没有任何其他字符)。当我删除
find_element_by_xpath(xpath)
为了检查名称,复制了正确的名称并且所有的作品。因此,似乎 xpath 搜索另一个元素会阻止第二个 send_keys()。我在这里错过了一些细节还是这是一个错误?