嗨,我是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 回答
PageSource
可能没有返回DOM等的确切快照 .您可以使用
driver.executeScript()
检查javascript,但分析返回对象的负担可能令人沮丧 .无论如何 - 这是一个人为的例子: