我有这个逻辑,它获取当前页面的标题,首先点击下一个按钮,再次获取标题,如果两个标题相同,则意味着导航没有移动到下一页,它再次点击下一步。在Xpath中使用OR条件来识别相同的元素
但是,我的问题是标题元素的Xpath不同 - 相同的标题元素有两个Xpath。其中一页是另一页的其他页面。
它要么是这个,
(.//span[@class='g-title'])[2]
OR
.//span[@class='g-title']
那么,我该怎么处理呢?
我有这个逻辑,它获取当前页面的标题,首先点击下一个按钮,再次获取标题,如果两个标题相同,则意味着导航没有移动到下一页,它再次点击下一步。在Xpath中使用OR条件来识别相同的元素
但是,我的问题是标题元素的Xpath不同 - 相同的标题元素有两个Xpath。其中一页是另一页的其他页面。
它要么是这个,
(.//span[@class='g-title'])[2]
OR
.//span[@class='g-title']
那么,我该怎么处理呢?
如果元素有两个XPath的,那么你可以写两个XPath像下面
xpath1 | xpath2
如://input[@name="username"] | //input[@id="wm_login-username"]
它会选择任何一个的XPath
只要在这里使用条件。这样做下面
String title1= YOUR Expected Title
String currenttitle= driver.getTitle();
if(currenttitle.equalsIgnoreCase(title1))
{
}else{
}
OR
Boolean isPresent = driver.findElements(By.yourLocator).size() > 0
if(isPresent==true)
{
}
else{
}
欲了解更多信息请参阅本: - Selenium WebDriver - Test if element is present
我有大量的页面在应用程序中。硬编码的东西将无法正常工作。 –
试试这个xpath - > .//span[@class='g-title'][2]或.//span[@class='g-title'] –
您可以使用or
运营商像
(.//span[@class='g-title'])[2] or .//span[@class='g-title']
whatz该索引 '2' 。你可以发布你正在使用的网址吗? –
是否有使用xpath找出页面标题的具体原因? Selenium Webdriver API有一个获取页面标题的方法(就像下面的Java绑定答案中提到的那样)。谢谢。 –
如果您在xpath中查找OR(|)运算符,则可以这样尝试“(.//span[@class='g-title'])[2]|.//span[@class='g-标题']“。我希望这是你正在寻找的。 –