<div id="sessions" class="container" style="display: block;">
<div id="usrSessionList" class="list" style="height: 109px;">
<div class="alert alert-info emptyList" style="text-align: center; display: none;" data-i18n="emptySession">No existing session</div>
<div id="D37867BB-56BE-10C0-3421-904FF75AAE23" class="row tableHeight">
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 user">test12</div>
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 opr"/>
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 lstOprId"/>
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 evt">USR_IN</div>
</div>
<div id="6E1385ED-3027-2B84-9183-433139FDE868" class="row tableHeight">
<div id="96235B5D-C8B4-5310-6E8F-B247B17482A2" class="row tableHeight">
<div id="A7BEF619-31C6-C7A9-A4C3-33B8EE583D4D" class="row tableHeight">
</div>
</div>
<div id="sessionConversation" style="display: none;">
</div>
</div>
&#13;
我想找到&#39; test12&#39;通过使用xpath。但是失败了......
String expectedText =&#34; test12&#34 ;;
WebElement Name = driver2.findElement(By.xpath(&#34; // div [contains(text(),&#39;&#34; + expectedText +&#34;&#39;)]&#34; ));
任何人都可以有任何其他想法吗? 非常感谢!
答案 0 :(得分:0)
我喜欢为这样的事情编写函数,因为它可能会被重用。对于此示例,看起来您正在寻找用户。
如果查看本节的HTML
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 user">test12</div>
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 opr" />
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 lstOprId" />
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 evt">USR_IN</div>
你会发现除了最后一个类DIV
之外,所有这些user
中的4个都有相同的类。所以有了这个信息,我们可以创建一个CSS选择器来找到这个元素。一种方法是
public WebElement getUserName()
{
return driver.findElement(By.cssSelector("div.user"));
}
返回包含用户名的WebElement
。你会像
System.out.println(getUserName().getText());
这样做的一个问题是,如果页面上有一堆像这样的HTML列出一堆用户。另一种情况可能是您希望根据您已知的用户名找到该元素。在这种情况下,我们可以通过包含文本(用户名)找到元素。我们可以写一个像
这样的函数public WebElement getUserName(String userName)
{
return driver.findElement(By.xpath("//div[contains(@class, 'user')][.='" + userName + "']"));
}
你会称之为
System.out.println(getUserName("test12"));