CSSSelector无法使用name参数定位元素

时间:2014-03-07 11:55:14

标签: java selenium-webdriver css-selectors

我有一个带5个按钮的页面,我需要找到名为“搜索”的按钮(包括前导和尾随空格)

当我尝试这两种方法时(打印名称仅用于测试目的):

System.out.println(driver.findElements(By.cssSelector("a.gxi-button")).get(1).getText());
System.out.println(driver.findElement(By.cssSelector("a.gxi-button[name=' Search ']")).getText());

对于第一个命令它的再生文本“搜索”但是对于第二个命令它的抛出异常“org.openqa.selenium.NoSuchElementException”

有人可以指导我在这里做错了什么。似乎领先和尾随空间在这里引起了问题。任何人都可以指导如何处理这个? 注意:我尝试了“搜索”和“搜索”,并且在两种情况下都获得相同的异常

1 个答案:

答案 0 :(得分:1)

您只需使用*=执行部分匹配。

System.out.println(driver.findElement(By.cssSelector("a.gxi-button[name*='Search']")).getText());

或者使用XPath(如果上面仍然没有工作)

driver.findElement(By.xpath(".//a[@class='gxi-button' and contains(@name, 'Search')]")).getText();

或使用XPath的normalize-space功能

driver.findElement(By.xpath(".//a[@class='gxi-button' and normalize-space(@name)='Search']).getText();