2016-06-30 44 views
3
<a href="" class="ng-binding ng-scope outside-month">1</a> 
<a href="" class="ng-binding ng-scope">1</a> 

點擊一個元素我想這樣做,其中外界月標籤缺失的第二個元素的點擊。我怎樣才能做到這一點?如何,如果標籤丟失

是否有一個特殊的硒函數或我必須寫一個特殊的xpath表達式?

回答

1

如果外界月缺少目標element你應該使用=class name如下xpath: -

String xPath = "//a[@class = 'ng-binding ng-scope']"; 

如果你想使用 contains和目標元素是最後

class name您應通過last()如下: -

String xPath = "(//a[contains(@class, 'ng-binding ng-scope')])[last()]"; 

,如果你想使用contains和目標元素是不包含class name的最後一個元素,你應該如下index通過適當的: -

String xPath = "(//a[contains(@class, 'ng-binding ng-scope')])[2]"; 

,如果你想月外已丟失,但ng綁定ng範圍現在你應該嘗試如下: -

String xPath = "//a[contains(@class, 'ng-binding ng-scope') and not(contains(@class, 'outside-month'))]"; 

使用任何上述xPath,並按以下執行click: -

WebDriverWait wait = new WebDriverWait(driver, 10); 
el = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(xPath))); 
el.click(); 

注意: - 要確保找到element,它不是任何frame內部之前。如果它是任何frame裏面你需要switchframe第一爲: - driver.switchTo().frame("frame name or id")

希望它會幫助你.. :)

+0

當然。我沒看到引號。 :d – gartenkralle

0
該元素之外月

它不是一個標籤或屬性,它只是一個更大類名 所以你需要的是找到那些NG-結合NG-scope類名稱的標籤:

driver.findElement(By.xpath("//a[@class='ng-binding ng-scope']")).click(); 
2

對於您的情況我想你可以設計一個使用not()和 operato XPath表達式rs在一起。

東西線沿線的:

//a[not(contains(@class, 'outside-month'))] 

我沒有測試過這是否工作或沒有,但讓我知道,如果沒有,我可以幫助完善它。