我一直在尝试使用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());
答案 0 :(得分:0)
您可以使用此代码点击链接:
WebElement element = driverThread.get().findElement(By.linkText("Google’s Terms of Service"));
element.click();
试试这段代码吧!希望这能帮助您解决问题。