2014-05-23 30 views

回答

11

您可以使用xpath索引選項。

By.xpath("(//input[@name='Button'])[2]") 
1

如果沒有屬性的唯一性,您可以使用xpath。對於例如如果你想找到具有文本foo和名稱的元素button然後我會喜歡的XPath如下如果名稱不是唯一有:

//*[@name='button' and text()='foo'] 

或不同類,但同名

//button[@name='button' and @class='xyz'] 

或者針對不同的文本,但同名

//input[@name='button' and contains(text(),'Click Here')] 

或不同的標籤,但相同的名稱

//button[@name='button'] 
//input[@name='button'] 

只要去任何獨特的屬性,並作出定製的xpath。

我希望你也可以爲此使用java腳本,例如

WebElement butttonToClick = driver.findElement(By.name("button")); 
((JavascriptExecutor)driver).executeScript("arguments[1].click();",butttonToClick); 

其中arguments[1]表示第二個具有相同名稱的元素。

0

你可以用xpath方法像下面的兄弟姐妹/前面的兄弟姐妹。

例如,如果按鈕位於任何唯一的webelement,則首先嚐試識別該webelement,然後通過使用不同的xpath方法(如兄弟姐妹之後的內容)來訪問Web元素。

相關問題