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

Практикум по тест-дизайну 2.0
онлайн, начало 29 ноября
Тестирование мобильных приложений
онлайн, начало 27 ноября
Автоматизатор мобильных приложений
онлайн, начало 27 ноября
Программирование на Python для тестировщиков
онлайн, начало 22 ноября
Фотография

Могу я использовать интерфейс IJavaScriptExecutor через WebDriverWait

webdriver IJavaScriptExecutor WebDriverWait C# .NET

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

#1 s3ngeeer

s3ngeeer

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

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

Отправлено 24 Февраль 2017 - 11:23

Доброго времени суток

Суть вопроса в том, что мне необходимо внедрение ЖС кода в моем методе
За счет того, что инициализация IJavaScriptExecutor происходит через IWebDriver, а не WebDriverWait, я не могу найти решение проблемы. Сейчас более наглядно попытаюсь показать, что есть и что хочу, чтобы было

Актуальный результат :

private IWebDriver  webDriver = new ChromeDriver();
IJavaScriptExecutor jse = (IJavaScriptExecutor)webDriver;

Ожидаемый результат: 

private IWebDriver  webDriver = new ChromeDriver();
private WebDriverWait waitDriver = new WebDriverWait(webDriver, TimeSpan.FromSeconds(10));
IJavaScriptExecutor jse = (IJavaScriptExecutor) waitDriver;

Может кто-нибудь подскажет, как мне можно реализовать примерно такую инициализацию jse?

Получается, что по всему проекту использую явные ожидания, а как дело доходит до ЖС кода, то приходится по-дикарски юзать    Thread.Sleep(1000).

Вообще, цель - прокрутить страницу на определенное количество пикселей вниз, чтобы аджаксом подтянулись новые элементы, а после я с ними мог спокойно работать. Фрагмент кода:

            IJavaScriptExecutor jse = (IJavaScriptExecutor)webDriver;
            for (int i = 0; i < 10; i++)
            {
              jse.ExecuteScript("window.scrollTo(0, 10000);");
              Thread.Sleep(1000);
            }

 


  • 0

#2 sergueik

sergueik

    Активный участник

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

Отправлено 25 Февраль 2017 - 03:47

можно ждать пока не станет хорошо ^W не появи(я)тся нужные элемнты

		try {

    wait.until(new ExpectedCondition<WebElement>() {

				@Override
				public WebElement apply(WebDriver d) {
        
         ((JavascriptExecutor) driver).executeScript(script, // SCROLL
				);
					Iterator<WebElement> elementsIterator = d
							.findElements(
									By.cssSelector( // EXPECTED ELEMENT LOCATOR 
                  ))
							.iterator();
              // DO FURTHER FILTERING 
					WebElement result = null;
					while (elementsIterator.hasNext()) {
						WebElement e = (WebElement) elementsIterator.next();
						String t = e.getText();
						if (t.contains( // E.G. BY TEXT
            )) {
							result = e;
							break;
						}
					}
					return result;
				}
			});
		} catch (

		Exception e) {
			System.err.println("Exception: " + e.toString());
		}


на java 8  это можно укоротить со streams


  • 0


Selenium 2.0: стартовый уровень
онлайн
Программирование на Java для тестировщиков
онлайн
Автоматизация функционального тестирования
онлайн
Selenium WebDriver: полное руководство
онлайн




Темы с аналогичным тегами webdriver, IJavaScriptExecutor, WebDriverWait, C#, .NET

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

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

Яндекс.Метрика
Реклама на портале