2016-06-21 29 views
0

使用Codeception验收测试(使用WebDriver)时,我想知道是否有方法单击包含特定文本的元素,而该元素不是链接或按钮。我知道它可以使用XPath完成,但我正在寻找一个更可读的解决方案,例如使用CSS选择器。有没有办法在不使用XPath的情况下在代码验收测试中单击纯文本?

+1

CSS选择器有一些限制:它无法比较HTML文本,因为无法获取父元素。所以,您需要使用XPath来比较文本。 –

回答

0

没有具体的例子,可能最好的办法是使用CSS选择器查找一组元素,然后遍历该集合寻找包含的文本。这是一个人为的例子,我正在寻找一个包含文本“Click here”的TD。

List<WebElement> cells = driver.findElements(By.cssSelector("td.someclass")); 
for (WebElement cell : cells) 
{ 
    if (cell.getText().contains("Click here")) 
    { 
     cell.click(); 
     break; // found it, don't need to keep looping 
    } 
} 

如果您想让您的搜索查找文本,那么XPath是您唯一的选择。

相关问题