2016-08-02 47 views
0

我打算使用find元素在網頁中查找按鈕,該頁面可以包含以下按鈕ID之一。僅針對Chrome獲取org.openqa.selenium.InvalidSelectorException

driver.findElements(By.xpath("//*[contains(@id,'topBtn')]")) driver.findElements(By.xpath("//*[contains(@id,'WSMplasticTop')]")) driver.findElements(By.xpath("//*[contains(@id,'bottomApplyBtn')]"))

上述代碼工作時,我使用的Firefox驅動程序,其中,作爲得到下面的錯誤,當我在Chrome驅動按預期運行。

org.openqa.selenium.InvalidSelectorException: invalid selector: Unable to locate an element with the xpath expression //*[contains(@id='bottomApplyBtn')] because of the following error: SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//*[contains(@id='bottomApplyBtn')]' is not a valid XPath expression.

只是想知道我是否做了任何錯誤

回答

2

嘗試使用

'//*[contains(@id,'bottomApplyBtn')]' 

代替

'//*[contains(@id='bottomApplyBtn')]' 
+0

謝謝安德森。它現在有效 – Hariharbalaji

1

當您使用在contains方法你XPath表達,你bas理論上使用內置的method來查找元素。

該方法需要2個參數。

  1. 首先您要在其中搜索的標籤。
  2. 其次是您在上面的標籤內查找的實際文本值。

基本上你必須調用2個參數的方法,並且2參數應該是comma分開。

因此//*[contains(@id='bottomApplyBtn')]是錯誤的,您應該刪除此=標誌。

//*[contains(@id, 'bottomApplyBtn')] 
       |_______|____________________ Parameter 1 
         |__________________________________Parameter 2 

希望它有幫助!