硒无头 chromedriver 无法定位元素

时间:2021-04-10 23:43:53

标签: selenium selenium-chromedriver

大家好,我正在使用没有 gui 的 raspberry pi,我正在尝试在无头模式下使用 Selenium chromedriver。我不断收到一个异常,说驱动程序无法找到我正在搜索的内容。事实是,没有无头模式我没有问题,我的代码工作正常。

class Bot:
    def __init__(self):
        options = webdriver.ChromeOptions()
        options.add_argument('--headless')
        options.add_argument('--disable-gpu')
        options.add_argument('--window-size=1920,1080');
        self.drivers = []
        for j in range(2):
            self.drivers.append(webdriver.Chrome(options=options,executable_path="/usr/lib/chromium-browser/chromedriver"))


    def clearCache(self, index):
        self.drivers[index].get('chrome://settings/clearBrowserData')
        time.sleep(1)
        try:
            settings = self.drivers[index].find_element_by_xpath('//settings-ui')
        except Exception as e:
            print(e)

错误:

Message: no such element: Unable to locate element: {"method":"xpath","selector":"//settings-ui"}
  (Session info: headless chrome=88.0.4324.187)

编辑 我试着截图

self.drivers[index].get('chrome://settings/clearBrowserData')
self.drivers[index].get_screenshot_as_file("screenshot.png")

我得到一个空白图像。

EDIT2 我注意到获取设置页面似乎有问题

self.drivers[index].get('chrome://settings/clearBrowserData')

因为在其他页面搜索的元素可以毫无例外地找到。我只需要转到设置即可删除缓存(因为我的机器人每次删除缓存时都会循环刷新页面)。 奇怪的是,没有无头模式,一切正常,self.drivers[index].get('chrome://settings/clearBrowserData') 不会以空白屏幕截图结束。

1 个答案:

答案 0 :(得分:0)

您可以尝试添加以下参数吗?或者,您可以通过加入 Internat Option->Security-> Trusted Sites-> add the URL 手动添加 URL。

--allow-running-insecure-content