当我运行使用 Chrome 作为浏览器的 selenium 测试时,测试挂起。原因是,由于浏览器以SYSTEM用户身份运行,因此不断弹出Chrome的搜索引擎选择提示。如果我以交互方式运行 selenium 服务器,并且作为登录用户选择一个搜索引擎,它将允许测试运行。但是,下次运行测试时,我会收到提示。
是否可以避免这种行为?
我在 Firefox 上也遇到过这种情况。我所做的就是以管理员身份运行 Firefox,并一次性回答了所有提示。
下次当我运行 selenium 脚本时,这些模态没有显示。 不确定这是否与 Chrome 直接相关,但绝对值得一试。
让我知道是否有效?
我可以建议你2个选择:
b.在任何测试之前编写并运行设置例程,这将打开浏览器设置页面并执行您需要的任何操作:
from selenium.webdriver import Chrome
SETTINGS_PAGE_URL = 'chrome://settings/browser'
SEARCH_ENGINE_DROPDOWN_ID = 'defaultSearchEngine'
SEARCH_ENGINE_CHOICE_XPATH = '//option[text()="Google"]'
browser = Chrome()
browser.get(SETTINGS_PAGE_URL)
dropdown = browser.find_element_by_id(SEARCH_ENGINE_DROPDOWN_ID)
option = dropdown.find_element_by_xpath(SEARCH_ENGINE_CHOICE_XPATH)
option.click()
browser.get('http://wherever.you/need/to/go/next/')
我会使用选项
a
。