我想用<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']");
答案 0 :(得分:5)
您想要指定如下内容:
//td[contains(@class,'deletion') or contains(@class,'addition')]
或
//td[contains(@class,'blob-code blob-code-addition') or contains(@class,'blob-code blob-code-deletion')]
如果您想进行tag
独立搜索,则只需使用
//*[contains(@class,'blob-code blob-code-addition') or contains(@class,'blob-code blob-code-deletion')]
从您的回答看来,您似乎正在尝试连接两个不同的xpath
s
但是,此处contians()
不是强制性的。你也可以不用这个
//*[(@class='blob-code blob-code-addition') or (@class='blob-code blob-code-deletion')]
答案 1 :(得分:1)
对我有用的是在表达式下使用“ |”表情中的字符-
通过element = driver.findElement(By.xpath(“ // button [@ clas ='xyz'] | // button [@ clas ='abc']”))
我在JAVA + Selenium + Maven项目中使用了上面的表达式
答案 2 :(得分:0)
使用pom:
@FindBy(xpath ="//span[contains(@class,'vui-menuitem-label-text') and normalize-space(.) = 'Clone']")
答案 3 :(得分:0)
选择所有标签:
<td class="blob-code blob-code-addition">
<td class="blob-code blob-code-deletion">
您可以使用以下任一 Locator Strategies:
通过带有或子句的class
属性使用xpath:
//td[@class='blob-code blob-code-addition' or @class='blob-code blob-code-deletion']
通过带有 or 子句的单个 class
属性使用 xpath:
//td[contains(@class,'blob-code-addition') or contains(@class,'blob-code-deletion')]
通过带有 or 子句的部分 class
属性使用 xpath:
//td[contains(@class,'addition') or contains(@class,'deletion')]