Selenium python chromedriver 110 headless=new 在选项卡之间切换时会中断电脑

问题描述 投票:0回答:1

当通过 Chrome 的新 --headless=new 模式运行两个选项卡时,我注意到每次切换选项卡时,我的电脑都会失去对我正在做的事情的关注 - 选项卡切换会中断电脑的使用,这在以前没有发生过,使用 --headless 选项。例如,当在文本框中写入内容时,我需要每隔几秒重新聚焦/单击回文本框(就像后台无头浏览器中发生选项卡切换一样)。

我使用的浏览器设置如下:

options = webdriver.ChromeOptions()
userdatadir = "user-data-dir="+absolute_dirpath+"\\assets\\chromeprofilesalesforce"
options.add_argument(userdatadir)
options.add_argument('--profile-directory=Profile 1')
service = Service()
service.creationflags = CREATE_NO_WINDOW
prefs = {
         'profile.default_content_settings.popups': 0,
        }
options.add_experimental_option('prefs',prefs)
options.add_argument("--disable-notifications")
options.add_argument("--disable-infobars")
options.add_argument('--headless=new')
driver = webdriver.Chrome(service = service, options=options)

通过失去焦点来干扰电脑使用的命令:

driver.switch_to.window(site)

有其他人注意到这一点吗?有办法解决吗?我不介意回到使用两个窗口而不是两个选项卡,但我更愿意只保留一个带有两个选项卡的窗口。起初,我认为问题出在我通过使用 send_keys() 和/或 click() 操作与所述网站进行交互,但仅运行一个选项卡执行所有这些操作从未中断我的电脑使用。我也试图找到一种方法来使用旧的无头模式,但没有成功。问题在于选项卡之间的切换。

谢谢!

编辑:

我相信我找到了罪魁祸首,我正在调用我的另一个函数,该函数通过线程来回切换选项卡 - 直接调用它似乎已经解决了问题,但事实并非如此。 Chrome 中的配置文件可以吗?有更好的方法吗?

编辑2:

在 webdriver 选项中使用 --disable-gpu 参数现在似乎已经解决了该问题,但它可能是间歇性的或在一段时间后出现,因此将保持更新。 EDIT2 的编辑:不,程序运行几分钟后问题再次出现。这些都没有解决在 PC 上分散其他工作的问题。

python selenium-chromedriver headless google-chrome-headless
1个回答
0
投票

我也遇到同样的问题,请问你找到解决办法了吗?

© www.soinside.com 2019 - 2024. All rights reserved.