我在这里有一个问题,我需要使用selenium搜索确切的文本。我想搜索具有值“SER20170905111755”的确切文本,但实际上,页面上还有另一个类似的文本,其值为“SER20170905111755 - AF-CR-613”。
我尝试过使用此
String text = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[contains(., 'SER20170905104010')]"))).getText();
它返回“SER20170905111755 - AF-CR-613”给我。然后我尝试了
String text = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[text()='SER20170905104010']"))).getText();
它抛出TimeOut异常。似乎无法找到文本。但是,如果我用这个替换它
String text = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[text()='SER20170905104010']"))).getText();
它返回我需要的预期值,即“SER20170905111755”。以下是两个文本页面的HTML代码
答案 0 :(得分:1)
试试这个xapths
//div[@class='tabHeader']
或
//div[@class='tabHeader'][contains(text(),'SER20170905111755')]
答案 1 :(得分:0)
你可以尝试在你的xpath中使用not predicate,如下所示
By.xpath("//*[contains(., 'SER20170905104010') and not(contains(.,'SER20170905111755 - AF-CR-613'))]")
我也不确定这一点,但只是试一下,让我知道。