Перейти к содержимому

Фотография

Никак не могу найти элемент по XPath

xpath webdriver selenium java

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 Roxyblue

Roxyblue

    Новый участник

  • Members
  • Pip
  • 1 сообщений

Отправлено 03 декабря 2016 - 05:16

Добрый день, я только учусь использовать Selenium WebDriver + Java.

Никак не могу найти элемент по XPath.

Необходимо:

1) создать письмо mail.ru

2) сохранить в черновики

3) зайти в папку черновики и проверить что оно действительно там

 

первые 2 шага у меня получились, а вот с третьим, у меня получается зайти в папку черновики, и я пытаюсь найти свое письмо по адресату отправителя(заходить в само письмо не нужно, необходимо из папки черновики убедиться что там есть моё письмо).
Так вот, я составил уже около 5-6 разных xpath, и самое главное что в FireFox с помощью FirePath или FireFinder он находит его, а в WebDriver выдаёт NoSuclElementException.

 

К примеру вот несколько XPath:

//div[contains(text(),'webdriver@mail.ru')]

 

или

 

//a[@title='webdriver@mail.ru']

 

Повторюсь что в FirePath и FireFinder все находит отлично, а WebDriver выдаёт Exception.

 

Ах да, совсем забыл, в процессе поиска я думал что элемент находится во фрейме, может быть из за этого он не может найти. Но увы, я проверил html код, фреймов там нету.


  • 0

#2 sergueik

sergueik

    Постоянный участник

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 04 декабря 2016 - 20:24

 а не пробовали средствами java текст вытащить - не полагаясь на мощщ  XPath? -  вот пример ;

		// Arrange
		final String searchText = "Embedded calendar";
		try {
			(new WebDriverWait(driver, 5)).until(new ExpectedCondition<Boolean>() {
				@Override
				public Boolean apply(WebDriver d) {
					Iterator<WebElement> elements = d
							.findElements(By.className("col-sm-6")).iterator();
					Boolean result = false;
					WebElement element = null;
					while (elements.hasNext() && !result) {
						element = (WebElement) elements.next();
						String text = element.getText();
						result = text.contains(searchText);
					}
					if (result) {
						actions.moveToElement(element).build().perform();
					}
					return result;
				}
			});
		} catch (Exception e) {
			System.err.println("Exception: " + e.toString());
		}

замените By.className("col-sm-6") и searchText  на то что вам нужно


  • 0

#3 baxatob

baxatob

    Опытный участник

  • Members
  • PipPipPipPip
  • 258 сообщений
  • ФИО:Юрий
  • Город:Riga

Отправлено 05 декабря 2016 - 12:19

 

Повторюсь что в FirePath и FireFinder все находит отлично, а WebDriver выдаёт Exception.

 

 

Скорее всего искомый элемент не успевает загрузиться. Попробуйте использовать ожидание.


  • 0



Темы с аналогичным тегами xpath, webdriver, selenium, java

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных