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