【问题标题】:Selenium Webdriver IE could not find elementSelenium Webdriver IE 找不到元素
【发布时间】:2016-09-07 08:35:14
【问题描述】:

我正在尝试导航到 www.google.com 并使用 Selenium webdriver 和 Internet Explorer(IE) 将一些输入发送到搜索框。

static WebDriver webDriver = null;
static DesiredCapabilities IEDesiredCapabilities = DesiredCapabilities.internetExplorer();

System.setProperty("webdriver.chrome.driver", TestConstants.chromeDriverFilePath);
System.setProperty("webdriver.ie.driver", TestConstants.IEDriverFilePth);

IEDesiredCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,
            true);
webDriver = new InternetExplorerDriver(IEDesiredCapabilities);
//webDriver = new ChromeDriver();

webDriver.navigate().to("http://www.google.com");
webDriver.findElement(By.name("q")).sendKeys("Venkatesh Kolisetty");
//webDriver.findElement(By.id("lst-ib")).sendKeys("Venkatesh Kolisetty");

这段代码在我使用Chrome时运行良好,但在使用IE时抛出org.openqa.selenium.NoSuchElementException

这会在 selenium 打开的 IE 浏览器中打开所需的网页。问题是 selenium 仅在使用 IE 时加载页面后无法找到任何元素。对于 chrome,它会找到所需的元素。

IEDesiredCapabilities有什么功能可以添加

请查看提供程序化解决方案而不是手动更改互联网选项的可能性。

【问题讨论】:

  • 页面在 IE、Firefox 或 Chrome 中打开时可能会自行更改。所以,你应该检查页面。
  • 提供您要查找的部分的示例 HTML 以及查找元素的方式。
  • 'www.google.com', 'www.facebook.com' - 没有网站在 IE 中运行
  • 本地托管的 Web 应用程序都在工作。问题在于开放的互联网网站

标签: java google-chrome internet-explorer selenium selenium-webdriver


【解决方案1】:

是的,这是您使用 IE 时的常见问题。

打开regedit.exe

打开 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones

因此,区域将包含 0、1、2、3、4,并且在您单击 0 时,右侧的三列将可见,即名称类型数据

现在在名称列中查找 2500 双击它。将 Value 数据设为 3,Base 设为 16 进制

你这样做是为了 0。

现在对 1,2,3,4.. 重复相同的步骤。

对所有,即 0、1、2、3、4、5 执行此操作 => 将所有 2500 的值数据更改为 3。

然后运行此代码。

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

    System.setProperty("webdriver.ie.driver", "D:\\Selenium\\CP-SAT\\IEDriver\\IEDriverServer.exe");

    WebDriver driver = new InternetExplorerDriver();
    driver.get("www.google.com");

它将在 IE 上运行。您需要一个 IEDriverServer.exe,如我在路径中所示,它将运行您的 IE 浏览器。

回复我以进行进一步查询。我在eclipse中运行了上面的代码,运行成功了。

学习愉快:-)

【讨论】:

  • IE 可以打开任何页面。问题是 selenium 仅在使用 IE 时打开页面后才找到任何元素。对于 chrome,这可以正常工作
  • 嗨 Venkatesh,我可以从上面的代码打开页面并执行我的操作。你能详细说明一下吗?
  • 我可以看到2500 低于 1 但不能低于 0、2、3、4。对于 1,十六进制设置为值 3
  • 我在公司办公室使用企业版 Windows。这不适用于个人机器。请看可行性。
  • 对我来说是 0 到 4,通常每个人都有。我也使用企业环境和企业版。尝试控制面板\网络和 Internet\网络和共享中心/Internet 选项并取消选中所有的保护模式。您不会被允许这样做,但只需检查它是否适合您。
【解决方案2】:

添加一些必需的功能后问题已解决。

IEDesiredCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
IEDesiredCapabilities.setCapability(InternetExplorerDriver.INITIAL_BROWSER_URL, "http://www.google.com");
IEDesiredCapabilities.internetExplorer().setCapability("ignoreProtectedModeSettings", true);
IEDesiredCapabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
IEDesiredCapabilities.setJavascriptEnabled(true);
//IEDesiredCapabilities.setCapability("requireWindowFocus", true);
IEDesiredCapabilities.setCapability("enablePersistentHover", false);

IEDesiredCapabilities.setCapability("requireWindowFocus", true); 是可选的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多