我正在尝试加载一个网页,该网页需要使用带有Selify的Python脚本进行身份验证。
options = webdriver.ChromeOptions()
prefs = {'download.default_directory': r"download.default_directory=" + download_folder,
"download.prompt_for_download": False, 'profile.default_content_setting_values.automatic_downloads': 1}
options.add_experimental_option('prefs', prefs)
options.add_argument("--start-maximized")
options.add_argument('--disable-browser-side-navigation')
driver = webdriver.Chrome(chrome_options=options, executable_path=chrome_driver)
driver.get('https://user:pass@somepage.com/32324')
这仍然会得到带有用户名和密码的弹出警报。因此,我认为我将只用代码处理警报,但似乎页面直到警报关闭才能完成加载,因此脚本停留在GET函数上。我该如何处理这种情况?
编辑:这不是复制,因为那里被接受的答案对我不起作用。
5条答案
按热度按时间hxzsmxv21#
如果您指的是html基本身份验证,您也可以尝试以下解决方法:(对不起,我只懂Java,但它应该非常相似)
第二次驱动程序调用只是重新加载页面。我不知道你是否需要它,但对我的自动化来说是需要的。
fhg3lkii2#
在浪费了许多小时之后,事实证明这是chromeDriver的一个已知问题:https://bugs.chromium.org/p/chromedriver/issues/detail?id=1917&q=authentication&colspec=ID%20Status%20Pri%20Owner%20Summary
我转而使用Firefox,它可以在那里工作。
gpnt7bae3#
所以这可能是最愚蠢的解决方案,我不能说它对每个人都有效,但是...尝试刷新页面。只要:
在Chrome中,这将清除身份验证弹出窗口,并将我带到登录页面,然后Selify可以处理该页面。
bprjcwpo4#
试试这个..。
ttisahbt5#
尝试使用Autoit:
代码类似于::
因为AutoIt将在您的光标所在的位置输入**,并且默认情况下,光标在用户ID字段上,所以您可以使用它。