使用Selenium为IE设置兼容性模式

使用Selenium为IE设置兼容性模式,selenium,internet-explorer,selenium-webdriver,internet-explorer-11,selenium-iedriver,Selenium,Internet Explorer,Selenium Webdriver,Internet Explorer 11,Selenium Iedriver,从先前的讨论中。我通过Selenium和IE驱动程序使用IE 11。 我正在查看的网站(我无法控制)需要IE 5或更高版本。 我正在使用IE11。正如有人告诉我的,IE11返回“Netscape”作为应用程序名,而不是“InternetExplorer”。我猜该网站正在寻找“Internet Explorer” 我们可以通过设置兼容性模式来克服这一问题。但是,运行IE的Jenkins服务器无法登录,因此我无法登录并设置模式 我想在IE出现时设置兼容模式。有一件事提到要做 ALT-T-Compat

从先前的讨论中。我通过Selenium和IE驱动程序使用IE 11。 我正在查看的网站(我无法控制)需要IE 5或更高版本。 我正在使用IE11。正如有人告诉我的,IE11返回“Netscape”作为应用程序名,而不是“InternetExplorer”。我猜该网站正在寻找“Internet Explorer”

我们可以通过设置兼容性模式来克服这一问题。但是,运行IE的Jenkins服务器无法登录,因此我无法登录并设置模式

我想在IE出现时设置兼容模式。有一件事提到要做 ALT-T-Compatibility模式,然后填写URL并关闭。这可以很好地手动操作,但我正在尝试自动操作。我想出了这个不起作用的代码。甚至ALT-T都不起作用。我想一定是因为某些原因钥匙没有正确发送:

        WebElement ele = driver.findElement(By.xpath("//html"));
        Actions action = new Actions(driver);
        action.moveToElement(ele).click().build().perform();
        action.sendKeys(Keys.LEFT_ALT).sendKeys("t").build().perform();

        for (int i = 1; i <= 11; i++) {
            action.sendKeys(Keys.DOWN).build().perform();
        }
        action.sendKeys(Keys.ENTER).build().perform();
        action.sendKeys(url).build().perform();
        action.sendKeys(Keys.ENTER).build().perform();
        for (int i = 1; i <= 4; i++) {
            action.sendKeys(Keys.TAB).build().perform();
        }
        action.sendKeys(Keys.ENTER).build().perform();
WebElement ele=driver.findElement(By.xpath(“//html”);
动作动作=新动作(驱动);
action.moveToElement(ele).click().build().perform();
action.sendKeys(Keys.LEFT_ALT).sendKeys(“t”).build().perform();
对于(int i=1;i)Internet Explorer中的Microsoft兼容性视图/模式
根据Internet Explorer 8中引入了兼容性视图/模式,以帮助现有内容继续与Internet Explorer 7配合使用,使开发人员有时间更新其内容以支持更新的web标准。在以前版本的Internet Explorer中,兼容性视图按钮将尝试修复损坏的sta基于ndards的网站,通过使页面像在Internet Explorer 7中那样显示。然而,今天,许多基于标准的网站因为试图像在Internet Explorer 7中那样显示而被破坏

在早期版本的IE(如IE 10及更高版本)中,IE提供了复选框
在兼容性视图中显示所有网站
选项。该选项导致了当今基于标准的网站出现问题。在IE 11中,删除了该选项和
兼容性视图
按钮。保留了兼容性视图添加选项以允许用户访问将网站单独置于兼容性视图/模式。此外,Microsoft保留了复选框
在兼容性视图中显示intranet网站
选项。如今,大多数intranet网站和基于web的设备也符合基于标准的web设计,而此选项通常不太重要

在IE的早期版本(如IE 10)中,兼容性视图按钮将指示网站处于兼容性视图/模式。 当您将鼠标悬停在兼容性视图按钮上时,您将看到一条兼容性视图弹出消息。在IE 11中,兼容性视图按钮被删除

禁用IE 11中兼容性视图/模式设置的步骤 步骤1:

  • 打开Internet Explorer(IE 11)
  • 按键盘上的Alt键,将出现一个菜单栏
  • 单击“工具”菜单选项卡
  • 选择兼容性视图设置选项
步骤2:

  • 在IE 11中,在兼容性视图中显示所有网站选项不可用
  • 取消选中“在兼容性视图中显示内部网站点”选项
注意:如果您认为URL可以从使用兼容性视图/模式中获益,可以将其添加到兼容性视图框中

有时网站看起来不像您期望的那样图像可能没有显示,菜单可能不合适,文本可能混杂在一起。这可能是由于Internet Explorer与您所在网站之间的兼容性问题造成的。有时,可以通过将网站添加到兼容性视图列表中来解决

按照将站点添加到
兼容性视图
列表:

  • 打开Internet Explorer,选择“工具”按钮,然后选择“兼容性视图设置”
  • 在“添加此网站”下,输入要添加到列表中的网站的URL,然后选择“添加”
注意:如果将站点添加到
兼容性视图列表
中,而页面看起来更糟,则问题可能不是兼容性,您应该从列表中删除该站点

打开“兼容性视图”后,Internet Explorer将在您每次访问时自动在“兼容性视图”中显示该网站。您可以通过从兼容列表中删除该网站来关闭该网站。并非所有网站显示问题都是由浏览器不兼容引起的。Internet连接中断、流量过大或Web浏览器出现问题ebsite还可以影响页面的显示方式

要清除
兼容性视图列表
站点:

  • 打开Internet Explorer,选择“工具”按钮,然后选择“Internet选项”
  • 在浏览历史记录下,选择删除
  • 在“删除浏览历史记录”对话框中,选中“历史记录”复选框,然后选择“删除”
结论 当您通过Selenium和IEDriverServer使用IE 11时,您无需担心兼容性视图,因为此功能已从IE 11中删除

参考文献
您可以在

中找到相关的讨论,下面的代码非常适合我使用IE11

公共类IECCompatibilityViewSettings{

public static void main(String[] args) throws InterruptedException, AWTException {

    WebDriver driver = new InternetExplorerDriver();
    driver.get("http://gmail.com");
    Thread.sleep(3000);

    Robot rob = new Robot();

    rob.keyPress(KeyEvent.VK_ALT);
    rob.keyPress(KeyEvent.VK_X);
    rob.keyRelease(KeyEvent.VK_X);
    rob.keyRelease(KeyEvent.VK_ALT);

    for (int i = 1; i <= 9; i++) {
        rob.keyPress(KeyEvent.VK_DOWN);
        rob.keyRelease(KeyEvent.VK_DOWN);
    }

    rob.keyPress(KeyEvent.VK_ENTER);
    rob.keyRelease(KeyEvent.VK_ENTER);
    Thread.sleep(1000);
    rob.keyPress(KeyEvent.VK_TAB);
    rob.keyRelease(KeyEvent.VK_TAB);
    Thread.sleep(1000);
    rob.keyPress(KeyEvent.VK_ENTER);
    rob.keyRelease(KeyEvent.VK_ENTER);
    Thread.sleep(1000);
    rob.keyPress(KeyEvent.VK_ESCAPE);
    rob.keyRelease(KeyEvent.VK_ESCAPE);

}
publicstaticvoidmain(String[]args)抛出InterruptedException、AWTException{
WebDriver驱动程序=新的InternetExplorerDriver();
驱动程序。获取(“http://gmail.com");
睡眠(3000);
Robot rob=新机器人();
rob.keyPress(KeyEvent.VK_ALT);
rob.keyPress(KeyEvent.VK_X);
rob.keyrease(KeyEvent.VK_X);
rob.keyrease(KeyEvent.VK_ALT);

对于(int i=1;我不确定你的意思,因为如果我运行它而不进行兼容性,它必须与IE 5或更高版本一起运行。当我将网站的URL添加到兼容性中时,它可以正常工作