Selenium没有给我的gwtSuggestBox发送密钥

2024-10-03 19:27:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用selenium,在python中编写脚本,来测试一个包含gwt SuggestBox的网页:

<div id="streamSuggestBox">
  <table> <tbody><tr> <td> <div class="gwt-Label errorText">Stream:</div> </td> 
  <td> <div><input type="text" class="gwt-SuggestBox"></div> </td> 
  </tr> </tbody></table>
</div>

selenium可以找到div和输入小部件:

^{pr2}$

如果输入小部件中有文本,sugInput.clear()会将其清除。在

问题是sugInput.send_keys("s")不起作用——输入字段中不显示任何内容,也不会提出建议。我应该如何在gwt建议框中输入数据?在


Tags: div脚本id网页部件seleniumtable建议
2条回答

您可能需要调用按键来让输入开始工作。下面是在python中如何从C#中执行上述示例:

el = self.driver.find_element_by_xpath("//div[@id='streamSuggestBox']/input[@class='gwt-SuggestBox']")
script = "arguments[0].setAttribute('value', argument[1])"
self.driver.execute_script(script,el,[value])

要调用建议,您可以执行以下操作:

^{pr2}$

根据什么按键是绑定到建议输入,这可能会起作用

您可以尝试直接设置value属性。抱歉,下面的代码是用C#编写的,但在python中的概念应该是相同的:

string script = "arguments[0].setAttribute('value', argument[1])";
IWebElement suggestionBox = //find it somehow...
driver.ExecuteScript(script, suggestionBox , "I typed this!");

要点是使用javascript直接修改元素的value属性。Selenium在他们的API中没有提供直接的支持,因为他们不相信用户会直接修改一个值。然而,对于“困难”的对象,它有时是必要的作为一个解决办法。在

相关问题 更多 >