我有一个包含2个搜索字段(顶部和底部)的网页,以及介于它们之间的一些文本,我想向底部字段发送查询。两个字段都相同(相同的代码)。
我尝试将底部存储在变量中并使用该变量发送密钥,但不知何故它总是将文本发送到第一个。
var bottomSearch = _WebDriver.FindElements(By.Id("inputBox"))[1];
Assert.IsTrue(bottomSearch.Displayed);
bottomSearch.Clear();
bottomSearch.Click();
bottomSearch.SendKeys("test");
bottomSearch.SendKeys(Keys.Enter);
所以:Clear()有效并正确删除底部搜索中已存在的任何文本,Click()也可以,SendKeys将文本发送到顶部搜索框,SendKeys(Keys.Enter)返回到底部,然后按Enter键从那里。 我使用firefox驱动程序,并尝试通过CssSelectors或其他标识符选择元素但不起作用。
非常感谢任何帮助或想法! 谢谢!
以下是搜索字段的代码:
<div class="searchbox-input">
<input id="inputBox" class="querybox" type="text" placeholder="Entrer le terme recherché" name="inputBox" value="test">
</div>
答案 0 :(得分:0)
好的,所以在经过2天的试验和错误后,我要求网站的开发人员更改bottomSearch的ID,现在一切正常。
在所有这些尝试之后,我很想怀疑驱动程序或SendKeys()方法中的错误,但由于我没有找到任何引用来支持这个并且我之前成功处理了相同的ID字段,也许它只是网站的实施或我的内容。
总而言之,遵循最佳实践建议,这绝不应该发生:)