Security 手动打开链接时无法通过selenium打开链接

Security 手动打开链接时无法通过selenium打开链接,security,url,selenium-webdriver,Security,Url,Selenium Webdriver,我需要在一些网站上自动填写一张表格。我可以很容易地手动完成。我进入网站,登录并点击链接-进入表格填写 但当我运行selenium测试时,它失败了,然后单击链接转到表单填充。错误是: Internet Explorer无法显示网页 我想这可能是因为这个网站的一些安全规则。但我不知道如何修复它。 有人能告诉我在这种情况下该怎么办吗?谢谢 更新: 2.这个网站的AJAX很重吗不 3您使用的是隐式计时器还是显式计时器?-我尝试过明确的等待-没有帮助 4什么代码失败了,IDE抛出了什么错误消息-错误是驱动

我需要在一些网站上自动填写一张表格。我可以很容易地手动完成。我进入网站,登录并点击链接-进入表格填写

但当我运行selenium测试时,它失败了,然后单击链接转到表单填充。错误是:

Internet Explorer无法显示网页

我想这可能是因为这个网站的一些安全规则。但我不知道如何修复它。 有人能告诉我在这种情况下该怎么办吗?谢谢

更新: 2.这个网站的AJAX很重吗不 3您使用的是隐式计时器还是显式计时器?-我尝试过明确的等待-没有帮助 4什么代码失败了,IDE抛出了什么错误消息-错误是驱动程序找不到元素。此元素在likk打开后可见。由于链接打开失败-引发此错误。所以我从IE写错误消息,因为这是根本原因。 5HtmlUnitDriver-请勿尝试

代码:

错误:

org.openqa.selenium.NoSuchElementException: 
Unable to find element with id == myid (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 30.12 seconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.37.0', revision: 'a7c61cb', time: '2013-10-18 17:14:00'
System info:
Session ID: 0976b47d-caf5-42fc-9e48-5c8a8c18e624
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
Capabilities [{platform=WINDOWS, javascriptEnabled=true, elementScrollBehavior=0, ignoreZoomSetting=false, enablePersistentHover=true, ie.ensureCleanSession=false, browserName=internet explorer, enableElementCacheCleanup=true, unexpectedAlertBehaviour=dismiss, version=9, ie.usePerProcessProxy=false, ignoreProtectedModeSettings=true, cssSelectorsEnabled=true, requireWindowFocus=false, initialBrowserUrl=http://localhost:12015/, handlesAlerts=true, ie.forceCreateProcessApi=false, nativeEvents=true, browserAttachTimeout=0, ie.browserCommandLineSwitches=, takesScreenshot=true}]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:193)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:554)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:307)
at org.openqa.selenium.remote.RemoteWebDriver.findElementById(RemoteWebDriver.java:348)
at org.openqa.selenium.By$ById.findElement(By.java:220)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:299)
at test.java.org.fullProcess.fillConsole(FullProcess.java:87)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

尝试更改受保护模式设置

工具->Internet选项->安全选项卡->为所有区域选择启用保护模式

我想这应该是你的问题的原因

DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();
ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
ieCapabilities.setCapability("ensureCleanSession", true);
driver = new InternetExplorerDriver(ieCapabilities);

来源:

URL是什么?这个网站很重吗?您使用隐式计时器还是显式计时器?您的IDE抛出了什么错误消息Internet Explorer无法显示网页听起来像是您的浏览器抛出的?它在现代浏览器中工作吗?那HtmlUnitDriver呢?可能有解决方案,但我们需要更多信息:我已经更新了我的问题您忘记粘贴代码以及IDE打印的确切错误消息(如果有)。我敢打赌,驱动程序在加载元素之前正在查找该元素,因此您需要添加隐式或显式计时器,以便它在加载元素之后才查找:PI已经使用了这个,但它没有帮助
DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();
ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
ieCapabilities.setCapability("ensureCleanSession", true);
driver = new InternetExplorerDriver(ieCapabilities);