gpt4 book ai didi

java - PhantomJs swithToFrame 不起作用

转载 作者:搜寻专家 更新时间:2023-11-01 03:33:20 25 4
gpt4 key购买 nike

    <dependency>
<groupId>com.github.detro</groupId>
<artifactId>phantomjsdriver</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.0.1</version>
</dependency>

<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-support</artifactId>
<version>3.0.1</version>
</dependency>

当我将下面的代码与 phantomjsdriver 一起使用时,我无法通过 css 选择器找到元素 - table.b3id-widget-table.b3-widget-table 在切换到 Frame 后。该元素位于 iframe 内。

与此同时,我能够使用具有相同代码的 Firefox 或 Chrome 二进制文件找到此元素。似乎在切换到 frame phantomjs 后无法在 iframe 中找到任何元素。有什么线索吗?

wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("standalone-container-main-widgetIframe")));
driver.switchTo().frame("standalone-container-main-widgetIframe");
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("table.b3id-widget-table.b3-widget-table")));

如果 iframe 位于另一个来源,另一个答案建议添加以下选项。

String [] phantomJsArgs = {"--ignore-ssl-errors=true", "--ssl-protocol=any", "--web-security=false"};
dCaps.setCapability(PhantomJSDriverService.PHANTOMJS_GHOSTDRIVER_CLI_ARGS, phantomJsArgs);
dCaps.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, phantomJsArgs);

但这对我没有帮助。最奇怪的是,有时它会工作几次,不知何故从 50 次尝试中有 1 次。我更改了不同的超时、隐式等待、显式等待 - 没有任何帮助,甚至等待 3-4 分钟。似乎不是时间问题。我还注意到我的 iframe 没有 src 属性,也许这就是问题所在

 <iframe frameborder="0" src="about:blank" id="standalone-container-main-widgetIframe">

我还使用 PhantomJs 截取了屏幕截图,看起来页面已成功加载,包括嵌套的 iframe,屏幕截图出于某种原因被裁剪了。

最佳答案

你有没有试过...

driver.FindElement(By.Name("standalone-container-main-widgetIframe"));
string frameHTML = driver.SwitchTo().Frame("standalone-container-main-widgetIframe").PageSource;
doc.LoadHtml(frameHTML);

这样您也可以看到您的框架 html。为此,您还需要使用 htmlagilitypack...

关于java - PhantomJs swithToFrame 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40980231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com