我正在使用Selenium 2 Webdriver。
我想点击一个链接,但链接文本可以是"LINKTEXT“或"Linktext”。有比这更好的方法吗:
List<WebElement> list = driver.findElements(By.linkText("Linktext"));
if(list.size()>0){
driver.findElement(By.linkText("Linktext")).click();
} else {
driver.findElement(By.linkText("LINKTEXT")).click();
}API和google并没有真正帮到我。有什么办法可以忽略大写字母吗?
发布于 2011-12-05 20:55:20
我不确定版本2,但Selenium 1在匹配中支持正则表达式。这些可以标记为不区分大小写。如果适用,可以执行以下操作:
driver.findElements(By.linkText("regexpi:Linktext"));尾随的i表示不区分大小写的匹配。
发布于 2014-01-12 03:58:59
我也一直在尝试解决这个问题。我还没有解决它,但这是我的概念的粗略草稿。它看起来可以工作,但它没有(我得到了一个陈旧的引用异常)。我只需要弄清楚如何让这类东西工作:
public boolean clickByLinkTextInsensitive( String matcher ) {
List<WebElement> els = driver.getElements( By.xpath( ".//a[@href!='']" ) );
for ( WebElement el: els ) {
if ( els.getText().toLowerCase().equals( matcher.toLowerCase() ) ) {
el.click();
}
}
}发布于 2011-12-06 08:35:46
LinkText区分大小写。因此,如果你有两个不同大小写的链接,那么它们将是两个相互独立的不同元素。在我看来,您的示例代码似乎不正确。下面的列表永远不会包含带有文本'LINKTEXT‘的链接,因此'else’部分是不相关的,也不是必需的。
List<WebElement> list = driver.findElements(By.linkText("Linktext"));https://stackoverflow.com/questions/8385459
复制相似问题