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

Фотография

Как заставить Selenium выполнять код, не дожидаясь полной загрузки стр


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

#1 solo2012

solo2012

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

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Соколовская Яна

Отправлено 30 декабря 2022 - 09:56

Скрипт не выполняет поиск и клик по элементу, пока не загрузится полностью вся страница.
Необходимо кликнуть на ссылку (Доставка) как можно быстрее.
 
Версии программ: Selenium.WebDriver 4.6.0
Selenium.WebDriver.ChromeDriver 107.0.5304.6200
 
Текущй код:
 
Browser.Navigate().GoToUrl("https://whitehills.r...484373546129");
 
IWebElement dostavka = GetElement(By.XPath("//span[contains(text(), 'Доставка')]"));
      if (dostavka != null)
                {
                    dostavka.Click(); 
                }

  • 0

#2 sergueik

sergueik

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

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

Отправлено 05 января 2023 - 03:10

главное - не показывать компьютеру, что ты куда-то спешишь


  • 0

#3 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 06 января 2023 - 11:27

Есть настройка (capability), pageLoadStrategy которая как раз управляет тем, что Selenium делает при загрузке страницы. Вот здесь можно почитать с примерами, как это  работает: http://barancev.gith...-loading-pages/


  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#4 sergueik

sergueik

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

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

Отправлено 10 января 2023 - 05:23

filtering-on_capture.jpg@barancev еще можно через прокси или 

 

из теста через ЦДП остановить загрузку картин

см.

 

https://github.com/s...ik/selenium_cdp

 
 
@Test
public void test1() {
 
// Arrange
chromeDevTools.send(Network.setBlockedURLs(
ImmutableList.of("*.css", "*.png", "*.jpg", "*.gif", "*favicon.ico")));
 
// verify that css jpg and png are blocked
chromeDevTools.addListener(Network.loadingFailed(),
(LoadingFailed event) -> {
ResourceType resourceType = event.getType();
if (resourceType.equals(ResourceType.STYLESHEET)
|| resourceType.equals(ResourceType.IMAGE)
|| resourceType.equals(ResourceType.OTHER)) {
Optional<BlockedReason> blockedReason = event.getBlockedReason();
assertThat(blockedReason.isPresent(), is(true));
assertThat(blockedReason.get(), is(BlockedReason.INSPECTOR));
} else {
// TODO
}
System.err.println("Blocked event: " + event.getType());
});
 
chromeDevTools.addListener(Network.requestWillBeSent(),
(RequestWillBeSent event) -> {
System.err.println("Request will be sent to get url: "
+ event.getRequest().getUrl());
 
});
chromeDevTools.addListener(Network.responseReceived(),
(ResponseReceived event) -> {
System.err.println(
"Response received with url: " + event.getResponse().getUrl());
 
}); // Act
// see also:
driver.get(baseURL);
Utils.sleep(1000);
}
 
 
 
 
 
 
params = new HashMap<>();
String[] urls = new String[] { "*.css", "*.png", "*.jpg", "*.gif",
"*favicon.ico" };
params.put("urls", urls);
command = "Network.setBlockedURLs";
driver.executeCdpCommand(command, params);
command = "Network.clearBrowserCache";
driver.executeCdpCommand(command, new HashMap<>());
params = new HashMap<>();
params.put("cacheDisabled", true);
command = "Network.setCacheDisabled";
driver.executeCdpCommand(command, params);

 

 

 

 

filtering-on_capture.jpg


  • 0


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

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