Selenium代码点击/点击链接,在ipad / iphone上打开一个新标签

时间:2018-04-18 03:02:24

标签: ios selenium tabs click saucelabs

我一直在尝试使用selenium在链接上点击/点按,这会在 ipad / iphone 上打开一个新标签。我写的测试在桌面上工作正常,但它不是点击元素,当它在ipad / iphone(saucelab)上运行时。单击该元素的步骤为Passed(无错误),但未发生单击,并且只有一个窗口句柄(父级)可用。当我尝试手动点击元素时(在酱壳上和物理设备上),它工作正常&新标签打开。试过不同的定位器& all正确识别元​​素。试过不同的方法,如javascript,动作,TouchActions,长按&发布甚至发送密钥。我也在其他网站中观察到了相同的行为。

这似乎是一个普遍的问题。请帮我解决这个问题。

类似方案:点击“https://www.google.com/gmail/about/policy/”页面上的“Google的服务条款”链接,点击“”。

代码段

    driverThread.get().get("https://www.google.com/gmail/about/policy/");
    String parentHandle = driverThread.get().getWindowHandle();
    System.out.println("Parent Handle --- " + parentHandle);
    WebElement element = driverThread.get().findElement(By.cssSelector("body > main > section > section > div > p:nth-child(2) > a"));
    element.click();   // **please help me to click/tap this element**
    String newHandle = null;
    System.out.println("Window Handles size --- " + driverThread.get().getWindowHandles().size());
    for (String handle : driverThread.get().getWindowHandles()) {
         System.out.println("Handle --- " + handle);
         if(!handle.equalsIgnoreCase(parentHandle))
             newHandle = handle;
    }
    driverThread.get().switchTo().window(newHandle);
    System.out.println("New Tab URL --- "+ driverThread.get().getCurrentUrl());

1 个答案:

答案 0 :(得分:0)

您可以使用此代码点击链接:

WebElement element = driverThread.get().findElement(By.linkText("Google’s Terms of Service"));
element.click();

试试这段代码吧!希望这能帮助您解决问题。