我在Python(3.11)中使用Firefox(107)驱动程序来使用Selenium。使用驱动程序导航到页面后,执行多个操作会触发一个OS警报(提示我启动程序)。当这个警报弹出时,驱动程序卡住了,只有手动关闭它后,我的脚本才能继续运行。
我尝试过使用
driver.quit()
,也尝试使用os.system("taskkill /F /pid " + str(process.ProcessId))
尝试使用驱动程序的PID,但没有成功。
我已经成功阻止了弹出窗口的出现。
options.set_preference("security.external_protocol_requires_permission", False)
但代码仍然在弹出窗口将会出现的位置挂起。
我不关心程序是否启动,我只需要我的代码不需要人为干预即可通过这一关键点。
以下是我目前拥有的最简示例:
from selenium.webdriver import ActionChains, Keys
from selenium.webdriver.firefox.options import Options
from seleniumwire import webdriver
options = Options()
options.binary_location = r'C:\Program Files\Mozilla Firefox\firefox.exe'
options.set_preference("security.external_protocol_requires_permission", False)
driver = webdriver.Firefox(options=options)
# Go to the page
driver.get(url)
user_field = driver.find_element("id", "UserName")
user_field.send_keys(username)
pass_field = driver.find_element("id", "Password")
pass_field.send_keys(password)
pass_field.send_keys(Keys.ENTER)
#this is the point where the pop up appears
reqs = driver.requests
print("Success!")
driver.quit()