gpt4 book ai didi

google-chrome - <'WebDriver' >.switchTo().frame(<'frameId' >) 不适用于 Chrome 驱动程序

转载 作者:行者123 更新时间:2023-12-04 10:27:15 25 4
gpt4 key购买 nike

需要访问模态 iframe 中的元素。

下面的代码对于 FireFox 驱动程序非常有效,而对于 Chrome 则失败 -

String frameId = null;
List<WebElement> frameSet = driver.findElements(By.tagName("iframe"));
for (WebElement frameName : frameSet){
if(!(frameName.getAttribute("id").isEmpty()) && (frameName.getAttribute("id").contains("DlgFrame"))){
frameId = frameName.getAttribute("id");
}
}

try {
Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Logger.info("Switch to Frame - "+frameId);
driver.switchTo().frame(driver.findElement(By.id(frameId)));

Chrome 驱动是否支持 switchTo.frame(<'frameId'>)?

使用 Chrome 驱动程序时出错 -

org.openqa.selenium.WebDriverException: Unknown command. Options: ActivateTab, CaptureEntirePage, CloseTab, DeleteCookie, ...

Command duration or timeout: 220 milliseconds Build info: version: '2.25.0', revision: '17482', time: '2012-07-18 22:18:01' System info: os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_05' Driver info: driver.version: RemoteWebDriver Session ID: cbde65cb0394ee0434b3bb528918ce40 at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:188) at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:498) at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:244) at org.openqa.selenium.remote.RemoteWebElement.sendKeys(RemoteWebElement.java:87) at com.shn.services.Office365.sharePointUploadFile(Office365.java:173) at com.shn.test.RunOffice365Test.testSharePointUploadAndDeleteFile(RunOffice365Test.java:55) at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:74) at org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:92) at org.apache.maven.surefire.Surefire.run(Surefire.java:180) at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:350) at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021)

最佳答案

我不知道这是否会帮助任何人,但我在轮询框架时遇到了类似的问题,这就是我的解决方案。

切换到 DefaultContent():

_driver.SwitchTo().DefaultContent();

获取帧:
IWebElement iFrames = _driver.FindElements(By.XPath("//iframe"));

轮询帧,但只有在“Displayed”为真时才切换到它:
foreach (var frame in iFrames)
{
if (!frame.Displayed)
continue;

_driver.SwitchTo().Frame(frame);
}

关于google-chrome - <'WebDriver' >.switchTo().frame(<'frameId' >) 不适用于 Chrome 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12471629/

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