SeleniumJava-inspect元素和页面源代码显示不同的格式
我试图使用SeleniumWeb驱动程序浏览页面,但有一点我被卡住了 请参考我正在处理的页面上显示inspect元素输出的图像 但是在页面源代码中(我在浏览器上看到,也使用了Jsoup)是这样的SeleniumJava-inspect元素和页面源代码显示不同的格式,java,selenium,selenium-webdriver,jsoup,Java,Selenium,Selenium Webdriver,Jsoup,我试图使用SeleniumWeb驱动程序浏览页面,但有一点我被卡住了 请参考我正在处理的页面上显示inspect元素输出的图像 但是在页面源代码中(我在浏览器上看到,也使用了Jsoup)是这样的 <html> <head> </head> <frameset rows="75,60,*" resize="no" SCROLLING="NO" name=main border="0"> <frame src="/frame/topnew
<html>
<head>
</head>
<frameset rows="75,60,*" resize="no" SCROLLING="NO" name=main border="0">
<frame src="/frame/topnewprof.shtml" name="top" SCROLLING=NO>
<frame src="/frame/blank.html" name="menu" SCROLLING=NO >
<frame src="/itrade/user/welcome.exe?action=chk_seckey_stat" name="body" SCROLLING=AUTO>
</frameset>
<body>
</BODY></html>
为什么会出现这种不匹配?我在上面的图片中突出显示的黄色的东西有我需要的元素!!
我如何使用硒元素到达那里??
我知道我们可以使用selenium的switchTo().frame()
导航到iframe,但即使我进入页面源信息中如上所示的三个框架中的任何一个,我也无法找到我需要的信息,
这能实现吗?有可能吗
更新:
大家好!我找到了解决这个问题的办法,现在这堆东西已经过时了。
事实上,当我试图做getPageSource时,selenium实际上得到了其中一个帧的帧源(“body”-如上所述),我意外地发现了这一点。
接下来要解决我的问题,我想从原来的位置后退一步,这样我就可以选择这个iframe=(name=“top”),这是我获取内容的目标,如图所示。为了实现这一点,我使用了Selenium的defaultContent()函数,然后使用switchTO()返回一步。frame()进入了我想要的框架并完成了任务
希望这有帮助!!
感谢所有在这方面帮助过我的人。我无法确切地告诉您造成这种不匹配的原因,但我知道如何解决这个问题 我对页面上的javascript短语也有类似的问题。通常,必须单击这些元素才能进入。但是,如果这个元素不可单击,或者单击不能解决问题,那么您也可以使用唯一的Xpath来搜索所需的信息 我不确定您是否已经在使用Selenium IDE,但也许您可以记录导航到此元素并使用Selenium IDE中抛出的java代码来获取所需信息
。。。我只在使用Selenium remote control而不是Selenium WebDriver时看到过这个问题…我认为使用XPath也可以解决这个问题。获取正确xpath的最简单方法是在firefox中使用firebug。右键单击开发人员工具中的元素,然后单击复制xpath。Firebug在生成XPath时非常精确。它为我解决了许多类似的问题 *即使您不使用firefox,大多数情况下您也可以在chrome webdriver测试中使用firebug中的相同xpath 这是个救命稻草 不过,请注意,有时路径很长,如:
final static String planTitlePath = "/html/body/div[1]/div[2]/div[1]/div[2]/div[5]/div/div/div/div/section/div/div[2]/div/ol/li/div[1]/plan-card/h4/span";
我找到了解决这个问题的办法,现在这堆东西已经过时了。事实上,当我试图做getPageSource时,selenium实际上得到了其中一个帧的帧源(“body”-如上所述),我意外地发现了这一点。接下来要解决我的问题,我想从原来的位置后退一步,这样我就可以选择这个iframe=(name=“top”),这是我获取内容的目标,如图所示。为了实现这一点,我使用了Selenium的defaultContent()函数,然后使用switchTO()返回一步。frame()进入了我想要的框架并完成了任务
希望这有帮助!!感谢所有在这方面帮助我的人。嗨,帕斯卡,我已经用解决方案更新了我的问题。请参阅。谢谢你的关心:)干杯