2016-08-19 82 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;