Internet Explorer не выбирает элементы на веб-странице - PullRequest
0 голосов
/ 06 июня 2018

Я использую Selenium для тестирования определенной области веб-страницы моей компании.То, что я пытаюсь сделать, кажется довольно легким в теории, но я столкнулся с несколькими препятствиями.Может кто-нибудь сказать мне, почему URL открывается, но не выбирает гиперссылку «Услуги»?

Ниже приведен фрагмент кода:

System.setProperty("webdriver.ie.driver","Path to IE/IEDriverServer_64.exe");
WebDriver driver = new InternetExplorerDriver();
DesiredCapabilities caps = DesiredCapabilities.internetExplorer();
driver.get("https://www.ups.com/us/en/Home.page");
driver.manage().window().maximize();
driver.findElement(By.xpath(".//*/div[@id='ups-header']/nav[@id='ups-navItems']/ul[@class='ups-navItems_primary']/li[@class='ups-navMenu ups-menu'][3]/a[@id='ups-menuLinks2']")).click();

Как я уже говорил ранее, теоретически это должно открыть домашнюю страницу UPS и выбрать вкладку «Услуги» в правом верхнем углу страницы.,Вместо этого он просто переходит на домашнюю страницу UPS.com и остается там.

У меня есть driver.findElement (By.xpath ........);в этом примере, но я пытался найти findElement (By.name & partLinkText

Может кто-нибудь дать мне решение, кроме обновления до последней версии (ей)?

Метаданные: Windows10, JAVA 10, Internet Explorer (К сожалению) 11.4.

Заранее спасибо!

Редактирование с дополнительной структурой HTML:

Это часть HTML, с которым я работаюс. Этот HTML-код принадлежит ссылке Сервисы, которую я хочу щелкнуть в своей автоматизации:

<a role="button" href="#" class="ups-analytics ups-menu_toggle" data- 
content-block-id="M1" data-event-id="22" aria-expanded="false" id="ups- 
menuLinks2" aria-controls="ups-menuPanel2">Services<span class="ups-mobnav- 
arrow" aria-hidden="true"></span></a><div class="ups-menu_list ups-cols-3" 
aria-hidden="true" role="region" id="ups-menuPanel2" aria-labelledby="ups- 
menuLinks2">
<h2 class="ups-med_show">Services</h2>
<div class="ups-menu_listCols">     

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Internet Explorer v11 не открывает url в моей системе, но с Selenium v3.12.0 , ChromeDriver 2.39 и Chrome v67.0 следующее решение щелкает элемент с текстом как Услуги just perfecto:

  • Блок кода:

    System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
    ChromeOptions options = new ChromeOptions();
    options.addArguments("start-maximized");
    options.addArguments("disable-infobars");
    options.addArguments("--disable-extensions"); 
    WebDriver driver =  new ChromeDriver(options);
    driver.get("https://www.ups.com/us/en/Home.page");
    driver.findElement(By.linkText("Services")).click();
    
  • Снимок браузера:

Services_clicked

0 голосов
/ 06 июня 2018

Это было сложно для IE, по некоторым причинам все xpath, которые я пробовал, кажется, не работают.Это может быть связано с некоторыми способностями, которые необходимо добавить.Я не вдавался в подробности, но он работает для меня в Firefox:

        String baseURL = "https://www.ups.com/us/en/Home.page";
    WebDriver driver;

    System.setProperty("webdriver.gecko.driver", "//path to//geckodriver.exe");
    driver = new FirefoxDriver();
    driver.manage().window().maximize();

    driver.get(baseURL);
    Thread.sleep(3000);
    WebElement service=driver.findElement(By.xpath("/html/body/div[1]/div[1]/div/div/div/div/header/div/nav/ul[1]/li[3]"));
    System.out.println(service.getText());
    service.click();

Если у вас есть проблемы с вашим Firefox.Пожалуйста, поделитесь стековой трассировкой, чтобы мы могли помочь.Этот код отлично работает для Firefox

...