java - Selenium Java - 检查元素和页面源显示不同的信息

标签 java selenium selenium-webdriver jsoup

我正在尝试使用 selenium 网络驱动程序浏览页面,但我卡在了一点 请引用图片,我在其中显示了我正在处理的那个页面的检查元素的输出。

inspect element output

但在页面源代码中(我在浏览器上看到并使用了 Jsoup)看起来像这样,

<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>&nbsp;
</BODY></html>

为什么不匹配?我在上图中突出显示的黄色部分具有我需要的元素!! 我将如何使用 Selenium 到达那里? 我知道我们可以使用 selenium 的 switchTo().frame() 导航到 iframe,但即使我进入页面源信息中上面显示的三个框架中的任何一个,我也无法找到我需要的信息, 这可以实现吗?有可能吗?

更新: 大家好!我找到了解决这个问题的方法,现在这个问题已经解决了。 实际上发生的事情是,当我尝试执行 getPageSource 时,selenium 实际上正在获取其中一个框架的框架源(“body”——如上所述),我无意中发现了这一点。 接下来要解决我的问题,我想从我所在的地方退后一步,这样我就可以选择这个 iframe = (name="top") 这是我拥有如图所示内容的目标。为了实现这一点,我使用了 Selenium 的 defaultContent() 函数并返回了一步,然后使用 switchTO().frame() 进入了我想要的框架并完成了任务

希望对您有所帮助!! 并感谢所有试图在这方面帮助我的人。

最佳答案

我无法确切地告诉您为什么会导致这种不匹配,但我知道您可以如何解决这个问题。

我在页面上的 javascript 短语方面遇到了类似的问题。通常必须单击此类元素才能进入。但是,如果此元素不可单击或单击不能解决问题,您也可以使用唯一的 Xpath 搜索所需的信息。

我不确定您是否已经在使用 Selenium IDE,但也许您可以记录导航到该元素并使用从 Selenium IDE 抛出的 Java 代码来获取所需的信息。

...我只在使用 Selenium 远程控制而不是 Selenium WebDriver 时看到这个问题...

关于java - Selenium Java - 检查元素和页面源显示不同的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25295943/

相关文章:

java - 使用递归打印星号三角形

java - 在 etsy.com 上找不到搜索按钮的定位器时遇到问题

javascript - 无法使用 selenium webdriver js 单击或提交按钮

java - 为什么 Firefox WebDriver 不会从以前的浏览器 session 中加载 Cookie?

java - 找不到 Spring Boot 2.1 EntityManagerFactory Bean

java - fork 过程 org/apache/commons/io/FileUtils org.apache.maven.surefire.booter.SurefireBooterForkException 中出现错误

c# - 使用 C# 和 selenium 网格进行并行测试

python - 从Google Play商店应用网站中提取评论

selenium-webdriver - 失败时 Protractor 暂停

java - 通过for循环添加不同名称的对象