首页 文章

Selenium Webdriver没有返回Javascript代码

提问于
浏览
0

嗨,我是Selenium Webdriver的新手 . 我可以成功打开一个网页并在其上找到元素 .

在一个案例中,我注意到页面上有一个链接,在一段时间后变为可点击 . 在“脚本”选项卡上的Firebug中,我可以看到执行计时器功能的javascript代码 .

但如果我发出使用Selenium Webdriver:

driver.PageSource

我看不到Javascript的源代码 . 在请求源之前延迟30秒没有任何区别 . 我尝试使用各种By选项找到它:

driver.FindElement

等等,但它不存在 .

firebug如何设法查找并显示Javascript源代码?有没有办法可以强制Selenium Webdriver返回页面引用的所有代码?

还是有更好的方法?

谢谢你的建议!

编辑 - - - - - - - - - - -

我在Firefox中尝试了以下内容:

Dim Driver2 As IWebDriver = New Chrome.ChromeDriver
Driver2.Url = "http://mypage" 
Dim js As IJavaScriptExecutor = TryCast(Driver2, IJavaScriptExecutor)
Dim title As String = DirectCast(js.ExecuteScript("return JSON.stringify(window)"), String)

我得到了

访问属性'toJSON'的权限被拒绝

我读到这不会在Firefox中工作所以我尝试在Chrome中,并得到了

通过访问跨源帧阻止原始“http:// mypage”的帧

从那里没有解决方案,因为根据this它的安全限制,显然你不能用Javascript访问

我开始认为我有点超出我的深度 .

1 回答

  • 0

    PageSource 可能没有返回DOM等的确切快照 .

    您可以使用 driver.executeScript() 检查javascript,但分析返回对象的负担可能令人沮丧 .

    无论如何 - 这是一个人为的例子:

    Object result = driver.executeScript("return JSON.stringify(window)");
    System.out.println(result.toString());
    

相关问题