gpt4 book ai didi

python - WebDriver:为什么 send_keys 在 find_element_by_xpath 之后不起作用?

转载 作者:行者123 更新时间:2023-11-28 19:25:54 25 4
gpt4 key购买 nike

我想用 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 访问)不会获得任何键(既不是 Return 也不是任何其他字符)。当我删除

find_element_by_xpath(xpath)

为了检查名称,复制了正确的名称并且一切正常。所以看起来 xpath 搜索另一个元素阻止了第二个 send_keys()。我是否遗漏了一些细节或者这是一个错误?

最佳答案

只是一个想法,您可以尝试使用 javascript 而不是 send_keys,如下所示:

js_code = """
var eventName = "keypress";
var keycode = 13;
var evt = document.createEvent("KeyboardEvent");
evt.initKeyboardEvent(eventName, true, true, window, false, false, false, false, keycode, keycode);
this.dispatchEvent(evt);
"""
textbox.evaluateJavaScript(js_code)

关于python - WebDriver:为什么 send_keys 在 find_element_by_xpath 之后不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13309964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com