Код 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();

попробуйте этот код! надеюсь, это поможет вам решить вашу проблему.

Другие вопросы по тегам