使用自动化测试,我遇到了很多时间的以下问题:我想在页面上找到一个元素,但元素必须位于页面的特定区域。
以下面的例子为例: 我在网站上有一个提前输入的搜索字段。在我的侧边栏中,我有我正在搜索的元素(让我们称之为#34; Selenium"),但这不是我感兴趣的元素,我想看看我的预先输入搜索是否正在提供搜索" Selenium"。
时的预期结果<body>
<header>
<searchfield>
<searchresults>
<a .... >Selenium</a>
<searchresults>
</searchfield>
</header>
<aside>
...
<a .... >Selenium</a>
...
</aside>
</body>
如果我在selenium webdriver中搜索linktext&#34; Selenium&#34;它会找到两个条目,侧边栏中的条目以及搜索字段中的条目。
此外,我无法在linkText上使用WaitForVisible
命令等待searchresult,因为Selenium将在侧边栏中找到该元素并得出该元素已预设的结论。
所以我的问题是: &#34;使用selenium webdriver,如何在特定区域内搜索元素?&#34;
答案 0 :(得分:1)
解决这个问题,我遇到了Xpath的使用。有了这个,我可以创建“区域”,我想搜索一个元素。举个例子,我从
开始html/body/div/aside/div[2]/ul/li
到
//div[contains(@class,'coworkerwidget')]/ul/li
现在代码更具动态性,如果我们的前端人员在将来编辑某些内容,则不易出错。
关于搜索,我现在可以设置类似下面的代码
//div[contains(@class, 'searchfield')]//div[contains(@title, 'searchfield') and contains(., '" + searchword + "')]"
首先,我们指定要查看搜索字段区域:
//div[contains(@class, 'searchfield')]
然后我可以为我想要找到的结果设置更多标准:
//div[contains(@class, 'title') and contains(., '" + searchword + "')]
关于进一步阅读的主题的一些文献。
http://www.qaautomation.net/?p=388
http://www.w3schools.com/xsl/xpath_syntax.asp
Click a button with XPath containing partial id and title in Selenium IDE