繁体   English   中英

Selenium Webdriver IE无法找到元素

[英]Selenium Webdriver IE could not find element

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

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浏览器中所需的网页。 问题是,只有在使用IE时才加载页面后,selenium无法找到任何元素。 对于chrome,它会找到所需的元素。

是否有任何功能可以添加到IEDesiredCapabilities

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

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

打开regedit.exe

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

所以区域将包含0,1,2,3,4,在右侧,只要您点击0即可看到三列,即名称类型数据

现在在Name列中查找2500双击它。 将值数据设置为3,将Base设置为十六进制

你这样做了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中运行了上面的代码并且运行成功。

快乐学习:-)

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

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); 是可选的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM