在xpath中指定多个条件

Zac*_*ack 3 java selenium xpath web-scraping selenium-webdriver

我想选择所有标签<td class='blob-code blob-code-addition'> and <td class='blob-code blob-code-deletion'>.所以我试图or在两个谓词之间包含条件.这是行不通的.但是,如果我只包括其中两个类中的一个.这里有什么问题?语法有问题.

By getChanges = By.xpath("//td[@class='blob-code blob-code-addition'] or  //td[@class='blob-code blob-code-deletion']");
Run Code Online (Sandbox Code Playgroud)

Sai*_*fur 5

您想要指定如下所示:

//td[contains(@class,'deletion') or contains(@class,'addition')]
Run Code Online (Sandbox Code Playgroud)

要么

//td[contains(@class,'blob-code blob-code-addition') or contains(@class,'blob-code blob-code-deletion')]
Run Code Online (Sandbox Code Playgroud)

如果你想进行tag独立搜索,那么你可以简单地使用

//*[contains(@class,'blob-code blob-code-addition') or contains(@class,'blob-code blob-code-deletion')]
Run Code Online (Sandbox Code Playgroud)

从你的回答看起来你似乎试图连接两个不同的xpaths

但是,contians()这里不是强制性的.你也可以没有这个

//*[(@class='blob-code blob-code-addition') or (@class='blob-code blob-code-deletion')]
Run Code Online (Sandbox Code Playgroud)