我在机器人框架中运行了一些测试,这些测试运行时使用的是firefox和chrome,但不适用于Internet Explorer。我读过其他建议将安全级别设置为受保护的帖子,我这样做了。
但后来我收到以下错误:
WebDriverException: Message: Unexpected error launching Internet Explorer.
Mode must be set to the same value (enabled or disabled) for all zones.
webdriver.py-文件:
DEFAULT_TIMEOUT = 30
DEFAULT_PORT = 0
DEFAULT_HOST = None
DEFAULT_LOG_LEVEL = None
DEFAULT_LOG_FILE = None
class WebDriver(RemoteWebDriver):
def __init__(self, executable_path='IEDriverServer.exe', capabilities=None,
port=DEFAULT_PORT, timeout=DEFAULT_TIMEOUT, host=DEFAULT_HOST,
log_level=DEFAULT_LOG_LEVEL, log_file=DEFAULT_LOG_FILE):
self.port = port
if self.port == 0:
self.port = utils.free_port()
self.host = host
self.log_level = log_level
self.log_file = log_file
self.iedriver = Service(executable_path, port=self.port,
host=self.host, log_level=self.log_level, log_file=self.log_file)
self.iedriver.start()
if capabilities is None:
capabilities = DesiredCapabilities.INTERNETEXPLORER
RemoteWebDriver.__init__(
self,
command_executor='http://localhost:%d' % self.port,
desired_capabilities=capabilities)
self._is_remote = False
def quit(self):
RemoteWebDriver.quit(self)
self.iedriver.stop()
我是否应该更改其他浏览器的安全级别?或者还有其他方法可以解决这个问题吗?提前谢谢!
答案 0 :(得分:1)
Not able to launch IE browser using Selenium2 (Webdriver) with Java
以上内容应该回答您的问题,您无需更改所有其他浏览器的安全级别。这不仅仅是启用保护模式,这是您的问题,而是您对我想象的不同区域的安全级别有所不同,即互联网/内联网
答案 1 :(得分:0)
我读到我需要IgnoreProtectedModeSettings。
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
caps = DesiredCapabilities.INTERNETEXPLORER
caps['ignoreProtectedModeSettings'] = True
driver = webdriver.Ie(capabilities=caps)
答案 2 :(得分:0)
尝试在IE浏览器的可信站点中添加您的URL。这对我有用。我尝试了我找到的所有选项,但最后将URL添加到可信站点。确保添加正确的URL(我的意思是https / http,无论手动在IE中打开)。希望这会有所帮助。
答案 3 :(得分:0)
请按照以下步骤操作,这可能会解决您的大部分问题。如果您的浏览器具有代理设置,则从步骤1开始,否则您可以从第3步开始
1.我在IE中启用了代理。
2.在启动浏览器之前将环境变量no_proxy设置为127.0.0.1(即在开始执行testcase之前)Ex:设置环境变量no_proxy 127.0.0.1
3.将所有互联网区域设置为相同级别(中等到高)期望受限制的站点打开浏览器>工具> Internet选项>安全选项卡
4.启用所有区域中的“启用保护模式”