from time import sleep
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
class TestJenkins:
@staticmethod
def test_run():
print('测试开始')
chrome_options = Options()
print('-----1')
chrome_options.add_argument('--no-sandbox') # 让Chrome在root权限运行
print('-----2')
chrome_options.add_argument('--disable-dev-shm-usage') # 不打开图形界面
print('-----3')
chrome_options.add_argument('--headless') # 浏览器不提供可视化页面
print('-----4')
chrome_options.add_argument('blink-settings=imagesEnabled=false') # 不加载图片, 提升速度
print('-----5')
chrome_options.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug
print('-----6')
chrome_options.add_argument("--remote-debugging-port=9222")
print('-----7')
sleep(2)
# driver = webdriver.Chrome('/usr/local/bin/chromedriver', options=chrome_options)
driver = webdriver.Chrome('/usr/bin/chromedriver', options=chrome_options)
# cls.driver = webdriver.Chrome(options=chrome_options)
print('测试开始1')
driver.implicitly_wait(60)
sleep(2)
print('这是第一个测试')
url = 'https://www.baidu.com/'
driver.get(url)
sleep(2)
result = driver.find_element_by_xpath('//*[@id="su"]')
if result.get_attribute('value') == '百度一下':
print('测试成功')
else:
print('测试失败,它是:' + result.text)
driver.quit()
if __name__ == '__main__':
TestJenkins.test_run()
测试开始
-----1
-----2
-----3
-----4
-----5
-----6
-----7
Traceback (most recent call last):
File "test.py", line 52, in <module>
TestJenkins.test_run()
File "test.py", line 27, in test_run
driver = webdriver.Chrome(options=chrome_options)
File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__
desired_capabilities=desired_capabilities)
File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created
from disconnected: unable to connect to renderer
(Session info: headless chrome=99.0.4844.51)
[zf@localhost Test_case]$ chromedriver --version
ChromeDriver 99.0.4844.51 (d537ec02474b5afe23684e7963d538896c63ac77-refs/branch-heads/4844@{#875})
[zf@localhost Test_case]$ google-chrome --version
Google Chrome 99.0.4844.51
我查看过这两个版本是一致的,我也试过把chromedriver删了重新下一个,但是还是不行
你看看实际安装的chrome浏览器的版本是不是一致的
查看Chrome当前版本
https://jingyan.baidu.com/article/22a299b57767ffdf19376a8b.html
程序运行时使用的chromedriver貌似用的是selenium默认的driver,传参并没有起作用。
对比下这个看看?
https://blog.csdn.net/qq_42833469/article/details/89891745