TA的每日心情 | 擦汗 前天 09:07 |
---|
签到天数: 527 天 连续签到: 4 天 [LV.9]测试副司令
|
1测试积点
本地执行脚本没问题,能正常打开浏览器,并通过点击对应的控件元素,但是集成到Jenkins之后,在Jenkins执行时,因为浏览器未打开显示出来,导致后续的点击元素失败。请问人遇到这样的情况么?是需要在Jenkins中配置什么环境么?脚本如下:- import os
- import requests
- import json
- import time
- from selenium import webdriver
- from selenium.webdriver.common.by import By
- import selenium.webdriver.support.expected_conditions as EC
- # 打开网络,登录,获取driver
- def get_driver(url):
- options = webdriver.ChromeOptions()
- options.add_argument('--no-sandbox')
- options.add_argument('--disable-gpu')
- options.add_argument('--hide-scrollbars')
- # options.add_argument('--headless')
- options.add_experimental_option('excludeSwitches', ['enable-automation'])
- # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
- # 设置权限
- prefs = {"profile.managed_default_content_settings.images": 1}
- #options.add_experimental_option("prefs", prefs)
- current_dir = os.path.dirname(os.path.abspath(__file__))
- print("current_dir: " + current_dir)
- chromedriver_dir = current_dir+'/chromedriver'
- print("chromedriver_dir: " + chromedriver_dir)
- driver = webdriver.Chrome(options=options, executable_path=chromedriver_dir)
- driver.get(url)
- # print(driver.page_source)
- driver.find_element_by_id('kw').send_keys('testerhome')
- driver.find_element_by_id('su').click()
- print("Click success")
- return driver
- # 获取cookies信息
- def get_cookies(driver):
- cookies = driver.get_cookies()
- Cookies = ''
- for lt in cookies:
- Cookies = Cookies + lt['name'] + '=' + lt['value'] + ';'
- print('Cookies:' + str(Cookies))
- driver.quit()
- return Cookies
- driver = get_driver("http://www.baidu.com")
- cookies = get_cookies(driver)
复制代码 1、本地执行结果:
- $ python3 test.py
- current_dir: /Users/aaa/JenkinProjects
- chromedriver_dir: /Users/aaa/JenkinProjects/chromedriver
- Click success
- Cookies:WWW_ST=1592104224283;BDSVRTM=15;PSINO=6;BD_CK_SAM=1;H_PS_PSSID=31909_14350_3136_2045_31714_30823_31846;BAIDUID=5945D257E9532E230820BDC4626B9B:FG=1;delPer=0;BIDUPSID=5945D257E5952ECC8F24B6FC2FE77EC;PSTM=159210441;BD_UPN=123253;BD_HOME=1;
复制代码 2、Jenkins执行结果:
- Running as SYSTEM
- Building in workspace /Users/Shared/Jenkins/Home/workspace/test
- [test] $ /bin/sh -xe /Users/Shared/Jenkins/tmp/jenkins5191306205202886733.sh
- + /usr/local/Cellar/python/3.7.0/bin/python3 /Users/aaa/JenkinProjects/test.py
- current_dir: /Users/aaa/JenkinProjects
- chromedriver_dir: /Users/aaa/JenkinProjects/chromedriver
- Traceback (most recent call last):
- File "/Users/aaa/JenkinProjects/test.py", line 71, in <module>
- driver = get_driver("http://www.baidu.com")
- File "/Users/aaa/JenkinProjects/test.py", line 55, in get_driver
- driver.find_element_by_id('su').click()
- File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py", line 80, in click
- self._execute(Command.CLICK_ELEMENT)
- File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
- return self._parent.execute(command, params)
- File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
- self.error_handler.check_response(response)
- File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
- raise exception_class(message, screen, stacktrace)
- selenium.common.exceptions.ElementNotVisibleException: Message: element not interactable
- (Session info: chrome=83.0.4103.97)
- (Driver info: chromedriver=70.0.3538.16 (16ed95b41bb05e565b11fb66ac33c660b721f778),platform=Mac OS X 10.14.5 x86_64)
- Build step 'Execute shell' marked build as failure
- Finished: FAILURE
复制代码
|
|