2016-08-19 81 views
0

按鈕點擊不工作Selenium-Appium-android chrome瀏覽器。 我在selenium中寫了一個自動化腳本。它正在致力於所有桌面瀏覽器(IE,Chrome,Firefox,Safari)。但它是不是工作在android 鉻瀏覽器按鈕被點擊,但沒有進一步的動作硒與硒012

配置詳情:

硒/ Java驅動程序:2.53.0(也試圖與最新的3.0版本) appium版本:1.4.16.1 手機: 三星Galaxy J2 5.1.1 的Android verion:5.1.1。 Chrome版本(手機):52.0.2743.98 appium java客戶端:4.1.1;也嘗試使用舊客戶端。

使用JavaScript執行器我可以突出顯示它。點擊方法執行時,它閃爍。但後續的按鈕點擊操作不會發生。試圖與所有的定位器。 Keys.Enter,Keys.Return,使用Javascript執行器單擊。什麼都沒發生。

以下是網頁源代碼。網站上有一個按鈕,按鈕標題爲「更多...」。

div class="search-results-more margin-btm-20"> 
 
a id="search-more" class="btn btn-submit btn-dark" href="javascript:void(0)">More...</a> 
 
</div>

請幫助。

回答

0

由於此按鈕有ID,所以我建議使用ID查找元素。在點擊按鈕之前,請確保您處於Web視圖上下文中。

Set<String> contexts = driver.getContextHandles(); // This will return something like 'NATIVE_APP', 'WEBVIEW_1', ... 

     // make sure we have something other than the native context 
     // assertThat(contexts.size(), greaterThan(1)); 
     for (String context : contexts) { 
      // System.out.println(contexts); 
      if (!context.equals("NATIVE_APP")) { 
       driver.context((String) contexts.toArray()[1]); 
       break; 
      } 
     } 

driver.findElement(By.id("search-more")).click(); 
+0

設置上下文= driver.getContextHandles();類型WebDriver的getContextHandles()方法未定義。如何解決這個錯誤。 –

+0

謝謝你蘇曼。我使用下面的代碼改變了上下文。但是我仍然無法點擊「更多...」按鈕。 設置上下文=((AndroidDriver)驅動程序).getContextHandles(); (String context:contexts){ \t(System.out.println(「contexts:」+ contexts);如果(!context.equals(「NATIVE_APP」)){(AndroidDriver)driver).context((String)contexts.toArray()[1]); 休息; } } 上述代碼打印爲「上下文:[NATIVE_APP,WEBVIEW_1]」。 –

+0

您是否在單擊元素之前檢查了上下文?當你檢查使用檢查員時你看到了什麼? – Suman

0

將您的驅動程序投射到appium驅動程序。我使用的是下面 -

public AppiumDriver<?> driver;