红烧傻紙串 2023-03-18 02:38 采纳率: 0%
浏览 172
已结题

inaccessible under scuttling mode

使用chromedriver打开浏览器新窗口遇到问题无法解决:

在python里使用chromedriver操作浏览器,chromedriver的配置如下:

USER_AGENTS = [
        'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',
        'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36',
    ]

    # 从列表中随机选择一个
    User_Agent = random.choice(USER_AGENTS)
    # 配置chromedriver
    chrome_options = Options()
    # 禁止浏览器弹窗
    chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
    chrome_options.add_argument(f'user-agent={User_Agent}')
    # 解决https页面出错的问题
    # chrome_options.add_argument(self.User_Agent)
    chrome_options.add_argument('--ignore-certificate-errors')
    chrome_options.add_argument('--ignore-urlfetcher-cert-requests')
    # 关闭gpu加速
    chrome_options.add_argument('--disable-gpu')
    # 沙箱模式
    chrome_options.add_argument('--no-sandbox')
    chrome_options.add_argument('--disable-dev-shm-usage')
    chrome_options.add_argument(r'user-data-dir=C:\Users\Administrator\AppData\Local\Google\Chrome\User Data')
    chrome_options.add_argument('--disable-infobars')
    chrome_options.add_argument('user-tmp=209')
     # 设置capabilities, 保留chrome devtools 中的network信息
    capabilities = DesiredCapabilities.CHROME
    # 构建webdriver的service,指定一下chromedriver的位置
    s = Service(os.path.join(modules_path, 'chromedriver.exe'))
    # 开始构建driver,我们使用chromedriver去构建,设置一下配置
    driver = webdriver.Chrome(executable_path=os.path.join(modules_path, 'chromedriver'),
                              desired_capabilities=capabilities, chrome_options=chrome_options, service=s)
    driver.implicitly_wait(10)

在主代码中,我想用driver打开一个新窗口:

driver.get("URL1")
driver.execute_script("window.open('{}')".format("URL2"))

浏览器可以正常启动,URL1也可以正常打开,但是URL2的这个新窗口就是打不开,报错为:

File "E:\XBX\science\vertex\front_end_2.py", line 280, in open_page
    driver.execute_script("window.open('{}')".format(self.loginurl))
  File "E:\anaconda\anaconda\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 879, in execute_script
    return self.execute(command, {
  File "E:\anaconda\anaconda\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 425, in execute
    self.error_handler.check_response(response)
  File "E:\anaconda\anaconda\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 247, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.JavascriptException: Message: javascript error: LavaMoat - property "open" of globalThis is inaccessible under scuttling mode. To learn more visit https://github.com/LavaMoat/LavaMoat/pull/360.
  (Session info: chrome=111.0.5563.65)

大概解决思路:
我查了相关问题解决的方法,大多就是说把scuttling mode给disable掉,但是我这么做了依然不行(也不知道是不是我没做对)。还请帮忙解决!

  • 写回答

9条回答 默认 最新

  • threenewbee 2023-03-18 06:41
    关注

    在scuttling模式下不能访问,造成了错误

    评论

报告相同问题?

问题事件

  • 系统已结题 3月26日
  • 创建了问题 3月18日