headless chrome driver 无法操作 https 页面

2019-04-21 23:14:35 +08:00
 bantianys
我的需求是,在 linux headless chrome 下执行一些自动操作。
现在遇到的问题是,如果是 http 的网页则一切正常。如果是 https 的,无论是证书可信不可信,均无法操作。效果就是找不到元素,截图也是一片空白。
环境使用的是 docker,里面都是比较新的 chrome 和 chromedriver。
headless chrome 和 driver 使用的是 docker 镜像,joyzoursky/python-chromedriver 3.7-alpine3.8-selenium

(Session info: headless chrome=68.0.3440.75)
(Driver info: chromedriver=2.38 (f91d32489882be7df38da3422a19713bfd113fa5),platform=Linux 4.4.59+ x86_64)

镜像应该是没问题的。



"""
A simple selenium test example written by python
"""

import unittest
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver import DesiredCapabilities

import time


class TestTemplate(unittest.TestCase):
"""Include test cases on a given url"""

def setUp(self):
"""Start web driver"""
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--ignore-certificate-errors')
capabilities = DesiredCapabilities.CHROME
capabilities["ACCEPT_SSL_CERTS"] = True
self.driver = webdriver.Chrome(chrome_options=chrome_options, desired_capabilities=capabilities)
self.driver.implicitly_wait(10)

def tearDown(self):
"""Stop web driver"""
self.driver.quit()

def test_case_1(self):
"""hai zei wang"""
try:
self.driver.get('https://vol.moe/')
time.sleep(10)
self.driver.get_screenshot_as_file("hzw.png")
except NoSuchElementException as ex:
self.fail(ex.msg)


if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(TestTemplate)
unittest.TextTestRunner(verbosity=2).run(suite)
2728 次点击
所在节点    Python
1 条回复
bantianys
2019-04-21 23:30:06 +08:00
加上下面几个配置就可以了。
capabilities["acceptSslCerts"] = True
capabilities["acceptInsecureCerts"] = True
capabilities["ignore-certificate-errors"] = True

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/557326

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX