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

Фотография

Перестали запускаться тесты на Jenkins после перехода на Selenium 4

selenium4

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

#1 Pavelinka

Pavelinka

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

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


Отправлено 05 ноября 2021 - 00:32

Перестали запускаться тесты на дженкинсе после перехода на Селениум 4. Ошибку размещу ниже.
баш скрипт которые ранится перед запуском тестов и создает вирт env содержит экспорт прокси ( для внешних сайтов ). Рассказываю об этом потому, что когда добавили "unset proxy" в конце этого скрипта - тесты заработали, но экстернал страницы перестали открывать ( а они нужны ). 

 

из странного - тест падает еще на стадии инициализации драйвера.
еррор месидж говорит о каком то локалхост странице которая недоступно - ничего подобного в тесте нет, не понятно откуда это ( какая то внутренняя проверка селениума? ). 

пожалуйста, помогите !
ошибки текст 
 

=================================== FAILURES ===================================
_____________ JenkinsConnectivityDiagnosticTests.test_jenkins_sel4 _____________
tests/utilities/test_jenkins.py:69: in test_jenkins_sel4
    driver = webdriver.Chrome(options=chrome_options, desired_capabilities=capabilities)
../../v395/lib/python3.9/site-packages/selenium/webdriver/chrome/webdriver.py:69: in __init__
    super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], "goog",
../../v395/lib/python3.9/site-packages/selenium/webdriver/chromium/webdriver.py:93: in __init__
    RemoteWebDriver.__init__(
../../v395/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py:266: in __init__
    self.start_session(capabilities, browser_profile)
../../v395/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py:357: in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
../../v395/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py:418: in execute
    self.error_handler.check_response(response)
../../v395/lib/python3.9/site-packages/selenium/webdriver/remote/errorhandler.py:207: in check_response
    raise exception_class(value)
E   selenium.common.exceptions.WebDriverException: Message: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
E   <html><head>
E   <meta type="copyright" content="Copyright (C) 1996-2016 The Squid Software Foundation and contributors">
E   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
E   <title>ERROR: The requested URL could not be retrieved</title>
E   <style type="text/css"><!--
E    /*
E    * Copyright (C) 1996-2016 The Squid Software Foundation and contributors
E    *
E    * Squid software is distributed under GPLv2+ license and includes
E    * contributions from numerous individuals and organizations.
E    * Please see the COPYING and CONTRIBUTORS files for details.
E    */
E   
E   /*
E    Stylesheet for Squid Error pages
E    Adapted from design by Free CSS Templates
E    http://www.freecsstemplates.org
E    Released for free under a Creative Commons Attribution 2.5 License
E   */
E   
E   /* Page basics */
E   * {
E   	font-family: verdana, sans-serif;
E   }
E   
E   html body {
E   	margin: 0;
E   	padding: 0;
E   	background: #efefef;
E   	font-size: 12px;
E   	color: #1e1e1e;
E   }
E   
E   /* Page displayed title area */
E   #titles {
E   	margin-left: 15px;
E   	padding: 10px;
E   	padding-left: 100px;
E   	background: url('/squid-internal-static/icons/SN.png') no-repeat left;
E   }
E   
E   /* initial title */
E   #titles h1 {
E   	color: #000000;
E   }
E   #titles h2 {
E   	color: #000000;
E   }
E   
E   /* special event: FTP success page titles */
E   #titles ftpsuccess {
E   	background-color:#00ff00;
E   	width:100%;
E   }
E   
E   /* Page displayed body content area */
E   #content {
E   	padding: 10px;
E   	background: #ffffff;
E   }
E   
E   /* General text */
E   p {
E   }
E   
E   /* error brief description */
E   #error p {
E   }
E   
E   /* some data which may have caused the problem */
E   #data {
E   }
E   
E   /* the error message received from the system or other software */
E   #sysmsg {
E   }
E   
E   pre {
E       font-family:sans-serif;
E   }
E   
E   /* special event: FTP / Gopher directory listing */
E   #dirmsg {
E       font-family: courier;
E       color: black;
E       font-size: 10pt;
E   }
E   #dirlisting {
E       margin-left: 2%;
E       margin-right: 2%;
E   }
E   #dirlisting tr.entry td.icon,td.filename,td.size,td.date {
E       border-bottom: groove;
E   }
E   #dirlisting td.size {
E       width: 50px;
E       text-align: right;
E       padding-right: 5px;
E   }
E   
E   /* horizontal lines */
E   hr {
E   	margin: 0;
E   }
E   
E   /* page displayed footer area */
E   #footer {
E   	font-size: 9px;
E   	padding-left: 10px;
E   }
E   
E   
E   body
E   :lang(fa) { direction: rtl; font-size: 100%; font-family: Tahoma, Roya, sans-serif; float: right; }
E   :lang(he) { direction: rtl; }
E    --></style>
E   </head><body id=ERR_ACCESS_DENIED>
E   <div id="titles">
E   <h1>ERROR</h1>
E   <h2>The requested URL could not be retrieved</h2>
E   </div>
E   <hr>
E   
E   <div id="content">
E   <p>The following error was encountered while trying to retrieve the URL: <a href="http://localhost:53789/session">http://localhost:53789/session</a></p>
E   
E   <blockquote id="error">
E   <p><b>Access Denied.</b></p>
E   </blockquote>
E   
E   <p>Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect.</p>
E   
E   <p>Your cache administrator is <a href="mailto:Help_Group@<domen_i_removed>.com?subject=CacheErrorInfo%20-%20ERR_ACCESS_DENIED&amp;body=CacheHost%3A%20sys1%0D%0AErrPage%3A%20ERR_ACCESS_DENIED%0D%0AErr%3A%20%5Bnone%5D%0D%0ATimeStamp%3A%20Fri,%2005%20Nov%202021%2000%3A01%3A47%20GMT%0D%0A%0D%0AClientIP%3A%20192.168.104.125%0D%0A%0D%0AHTTP%20Request%3A%0D%0APOST%20%2Fsession%20HTTP%2F1.1%0AAccept-Encoding%3A%20identity%0D%0AContent-Length%3A%20560%0D%0AAccept%3A%20application%2Fjson%0D%0AContent-Type%3A%20application%2Fjson%3Bcharset%3DUTF-8%0D%0AUser-Agent%3A%20selenium%2F4.0.0%20(python%20linux)%0D%0AConnection%3A%20keep-alive%0D%0AHost%3A%20localhost%3A53789%0D%0A%0D%0A%0D%0A">Help_Group@BusinessWire.com</a>.</p>
E   <br>
E   </div>
E   
E   <hr>
E   <div id="footer">
E   <p>Generated Fri, 05 Nov 2021 00:01:47 GMT by sys1 (squid/3.5.20)</p>
E   <!-- ERR_ACCESS_DENIED -->
E   </div>
E   </body></html>

  • 0

#2 sergueik

sergueik

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

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

Отправлено 06 ноября 2021 - 01:40

ошибку скопирйте еще раз в читаемом виде

пожалуйста


  • 0

#3 Pavelinka

Pavelinka

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

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


Отправлено 06 ноября 2021 - 20:14

ошибку скопирйте еще раз в читаемом виде

пожалуйста

Это ровно как она выводится на консоль. Она не отражается как HTML страница. я не могу уже поправить пост, ниже выведу то, что в HTML но мне кажется это не главное, а главное в какой строчке кода происходит ошибка.
То что мне кажется после всех попыток добавить игнорирование прокси к вебдрайверу, что где то "за кулисами" при инициации драйвера и началу сессии прокси мешает этому процессу ( мне не хватает знаний почему при инициации драйвера он обращается к этому локалхосту . Потому что ошибка до того, как драйер открывает страницу  ( get())

текст в HTML
The following error was encountered while trying to retrieve the URL: http://localhost:53789/session
 

Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect.
 


  • 0

#4 sergueik

sergueik

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

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

Отправлено 07 ноября 2021 - 00:54

думаю селениум 4 так открывает соединение с CDP

https://chromedevtoo...tools-protocol/

до 4го расширения  селениума то же через веб сокеты делали  то же самое

 

если интересно расскажу подробнее

 

отключить это думаю нельзя

 

 

ошибку скопирйте еще раз в читаемом виде

пожалуйста

Это ровно как она выводится на консоль. Она не отражается как HTML страница. я не могу уже поправить пост, ниже выведу то, что в HTML но мне кажется это не главное, а главное в какой строчке кода происходит ошибка.
То что мне кажется после всех попыток добавить игнорирование прокси к вебдрайверу, что где то "за кулисами" при инициации драйвера и началу сессии прокси мешает этому процессу ( мне не хватает знаний почему при инициации драйвера он обращается к этому локалхосту . Потому что ошибка до того, как драйер открывает страницу  ( get())

текст в HTML
The following error was encountered while trying to retrieve the URL: http://localhost:53789/session
 

Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect.
 

 


  • 0

#5 Pavelinka

Pavelinka

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

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


Отправлено 08 ноября 2021 - 17:37

 

думаю селениум 4 так открывает соединение с CDP

https://chromedevtoo...tools-protocol/

до 4го расширения  селениума то же через веб сокеты делали  то же самое

 

если интересно расскажу подробнее

 

отключить это думаю нельзя

 

 

ошибку скопирйте еще раз в читаемом виде

пожалуйста

Это ровно как она выводится на консоль. Она не отражается как HTML страница. я не могу уже поправить пост, ниже выведу то, что в HTML но мне кажется это не главное, а главное в какой строчке кода происходит ошибка.
То что мне кажется после всех попыток добавить игнорирование прокси к вебдрайверу, что где то "за кулисами" при инициации драйвера и началу сессии прокси мешает этому процессу ( мне не хватает знаний почему при инициации драйвера он обращается к этому локалхосту . Потому что ошибка до того, как драйер открывает страницу  ( get())

текст в HTML
The following error was encountered while trying to retrieve the URL: http://localhost:53789/session
 

Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect.
 

 

 

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


  • 0

#6 Pavelinka

Pavelinka

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

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


Отправлено 08 ноября 2021 - 19:25

Еще к моей проблеме. До того, как начинает работать наши тесты, запускается баш скрипт который делает 
export http_proxy=http://<our-proxy-address>:3128

после этого наши тесты работают ( селениум 3) , или не работают ( проблема выше с селениум 4).
мы пробовали сделать 'unset proxy' - но после этого в селениум 4 не работают экстернал запросы ( нам нужен для теста ).

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


  • 0

#7 Pavelinka

Pavelinka

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

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


Отправлено 15 ноября 2021 - 21:43

Ну раз уж начала то продолжу. 
Проблему с созданием драйвера решила путем удаления прокси в пайтон скрипте. ( Как будто это было очевидно, но не доходило)
Теперь ошибка другая, во время открывания тестовой страницы - driver.get(url) -  но это хотя бы уже понятно. Хотя когда делали unset_http_proxy ( и другие прокси) в скрипте баш которые ранился ДО начала теста - дальше тест работал ( не открывались только внешние ресурсы). Но по крайней мере с этим уж можно дальше что то делать. ( наверное )

 

### how to delete proxy in python script ( in test )

import os
del os.environ['http_proxy']
del os.environ['https_proxy']
del os.environ['no_proxy']

# new error when test run 

_____________ JenkinsConnectivityDiagnosticTests.test_jenkins_sel4 _____________
tests/utilities/test_jenkins.py:102: in test_jenkins_sel4
    driver.get(url)
../../v395/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py:430: in get
    self.execute(Command.GET, {'url': url})
../../v395/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py:418: in execute
    self.error_handler.check_response(response)
../../v395/lib/python3.9/site-packages/selenium/webdriver/remote/errorhandler.py:243: in check_response
    raise exception_class(message, screen, stacktrace)
E   selenium.common.exceptions.WebDriverException: Message: unknown error: net::ERR_CONNECTION_RESET
E     (Session info: headless chrome=94.0.4606.81)
E   Stacktrace:
E   #0 0x555ef45ab8f3 <unknown>
E   #1 0x555ef4090ba8 <unknown>
E   #2 0x555ef408b042 <unknown>
E   #3 0x555ef407ce46 <unknown>
E   #4 0x555ef407dd63 <unknown>
E   #5 0x555ef407d112 <unknown>
E   #6 0x555ef407c6f8 <unknown>
E   #7 0x555ef407b4c3 <unknown>
E   #8 0x555ef407b813 <unknown>
E   #9 0x555ef409256a <unknown>
E   #10 0x555ef40f760f <unknown>
E   #11 0x555ef40e3e72 <unknown>
E   #12 0x555ef40f6dac <unknown>
E   #13 0x555ef40e3d63 <unknown>
E   #14 0x555ef40ba144 <unknown>
E   #15 0x555ef40bb135 <unknown>
E   #16 0x555ef45dac3e <unknown>
E   #17 0x555ef45f06b7 <unknown>
E   #18 0x555ef45dbb95 <unknown>
E   #19 0x555ef45f1b05 <unknown>
E   #20 0x555ef45d02ab <unknown>
E   #21 0x555ef460c248 <unknown>
E   #22 0x555ef460c3c8 <unknown>
E   #23 0x555ef462733d <unknown>
E   #24 0x7ff3b3ee1ea5 start_thread


  • 0

#8 sergueik

sergueik

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

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

Отправлено 28 декабря 2021 - 21:52

вот пример иллюстрирующий какой метод приводит к каким или никаким исключениям
 



package com.github.sergueik.selenium;


import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;


/**
 * Selected test scenarios for Selenium WebDriver
 * @author: Serguei Kouzmine (kouzmine_serguei@yahoo.com)
 */


// inspired by
// https://software-testing.ru/forum/index.php?/topic/40460-perestali-zapuskatsia-testy-na-jenkins-posle-perekhod/


public class MethodExceptionTest extends BaseTest {
String baseURL = "https://www.wikipedia.org/";


@BeforeClass
public void before() {
driver.navigate().to(baseURL);
}


@Test(enabled = true)
// https://github.com/SeleniumHQ/selenium/blob/trunk/java/src/org/openqa/selenium/remote/server/handler/FindElements.java
public void test1() {
driver.findElements(By.cssSelector("#searchInput"));
}


@Test(enabled = true)
// https://github.com/SeleniumHQ/selenium/blob/trunk/java/src/org/openqa/selenium/remote/server/handler/FindElements.java
public void test2() {
driver.findElements(By.cssSelector("#none"));
// no exception thrown
}


@Test(enabled = true)
// https://github.com/SeleniumHQ/selenium/blob/trunk/java/src/org/openqa/selenium/remote/server/handler/FindElement.java
public void test3() throws NoSuchElementException {


driver.findElement(By.cssSelector("#searchInput"));


}


@Test(enabled = true, expectedExceptions = {
org.openqa.selenium.NoSuchElementException.class })
// https://github.com/SeleniumHQ/selenium/blob/trunk/java/src/org/openqa/selenium/remote/server/handler/FindElements.java
public void test4() throws NoSuchElementException {
driver.findElement(By.cssSelector("#none"));
// exception thrown
}


}



  • 0

#9 sergueik

sergueik

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

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

Отправлено 28 декабря 2021 - 23:50

кроме того проверьте может после апгрейда на релиз версии 4.1.1 если не ошибаюсь 

остались проблемы с вашим прокси скриптом 


  • 0



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

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