2015-12-30 36 views
0

我有这个逻辑,它获取当前页面的标题,首先点击下一个按钮,再次获取标题,如果两个标题相同,则意味着导航没有移动到下一页,它再次点击下一步。在Xpath中使用OR条件来识别相同的元素

但是,我的问题是标题元素的Xpath不同 - 相同的标题元素有两个Xpath。其中一页是另一页的其他页面。

它要么是这个,

(.//span[@class='g-title'])[2] 

OR

.//span[@class='g-title'] 

那么,我该怎么处理呢?

+0

whatz该索引 '2' 。你可以发布你正在使用的网址吗? –

+0

是否有使用xpath找出页面标题的具体原因? Selenium Webdriver API有一个获取页面标题的方法(就像下面的Java绑定答案中提到的那样)。谢谢。 –

+0

如果您在xpath中查找OR(|)运算符,则可以这样尝试“(.//span[@class='g-title'])[2]|.//span[@class='g-标题']“。我希望这是你正在寻找的。 –

回答

3

如果元素有两个XPath的,那么你可以写两个XPath像下面

xpath1 | xpath2

如://input[@name="username"] | //input[@id="wm_login-username"]

它会选择任何一个的XPath

0

只要在这里使用条件。这样做下面

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

+0

我有大量的页面在应用程序中。硬编码的东西将无法正常工作。 –

+0

试试这个xpath - > .//span[@class='g-title'][2]或.//span[@class='g-title'] –

相关问题