selenium webdriver在区域中找到元素

时间:2015-04-16 09:19:38

标签: selenium xpath selenium-webdriver

使用自动化测试,我遇到了很多时间的以下问题:我想在页面上找到一个元素,但元素必须位于页面的特定区域。

以下面的例子为例: 我在网站上有一个提前输入的搜索字段。在我的侧边栏中,我有我正在搜索的元素(让我们称之为#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;

1 个答案:

答案 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

Retrieve an xpath text contains using text()