首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Selenium代码,用于单击/点击链接,在ipad/iphone上打开一个新标签

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

Stack Overflow用户
提问于 2018-04-18 11:02:24
回答 1查看 573关注 0票数 2

我一直在尝试使用selenium点击/点击上的一个链接,这会在ipad/iphone上打开一个新的标签。我写的这个测试在台式机上运行得很好,但在ipad/iphone (saucelab)上运行时,它不会点击元素。单击元素的步骤被传递(没有错误),但没有发生单击,并且只有一个窗口句柄(父窗口)可用。当我尝试手动单击元素时(在saucelab上也是在物理设备上),它工作得很好&新选项卡打开。尝试了不同的定位器&都正确地识别了元素。尝试了不同的方法,如javascript,actions,TouchActions,长按和释放,甚至发送键。我在其他网站上也观察到了同样的行为。

这似乎是一个一般性的问题。请帮我解决这个问题。

谷歌类似的场景: Verify点击"https://www.google.com/gmail/about/policy/“页面上的”谷歌服务条款“链接,会打开一个新的标签。

代码段

    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());
EN

回答 1

Stack Overflow用户

发布于 2018-04-18 16:03:25

您可以使用以下代码来单击该链接:

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49890486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档