Код Selenium для нажатия / нажатия на ссылку, которая открывает новую вкладку на ipad/iphone
Я пытался нажать / нажать на ссылку с помощью селена, который открывает новую вкладку на Ipad / Iphone. Тест, который я написал, отлично работает на рабочем столе, но он не щелкает по элементу, когда он работает на ipad / iphone (saucelab). Шаг, который щелкает элемент, выполнен (без ошибок), но щелчок не произошел, и доступен только один дескриптор окна (родитель). Когда я пытаюсь вручную щелкнуть элемент (на плите на физическом устройстве), он работает нормально, и открывается новая вкладка. Пробовал с разными локаторами и все правильно идентифицирует элемент. Пробовал с различными методами, такими как JavaScript, действия, TouchActions, долгое нажатие и отпускание и даже отправить ключи. Такое же поведение я наблюдал и на других сайтах.
Это похоже на общую проблему. Пожалуйста, помогите мне исправить это.
Аналогичный сценарий. Убедитесь, что нажмите ссылку "Условия использования Google" на странице " 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());
1 ответ
Вы можете использовать этот код для перехода по ссылке:
WebElement element = driverThread.get().findElement(By.linkText("Google’s Terms of Service"));
element.click();
попробуйте этот код! надеюсь, это поможет вам решить вашу проблему.