下面是我的代码
driver.switchTo().frame(driver.findElement(By.id("file")));
以上行未运行
答案 0 :(得分:0)
切换到帧有多种方法。如果您需要确切的代码切换到相应的应用程序,请分享HTML代码。你可以试试下面的方法。如果您的框架没有任何名称等,请更好地使用索引
driver.switchTo().frame(index)
首先将索引替换为0,如果不起作用,则逐个尝试1然后再使用2等
更多详情
driver.switchTo().frame()
有多个重载。
driver.switchTo().frame(name or id)
这里你的iframe没有id或名字,所以不适合你。
driver.switchTo().frame(index)
这是最后一个选择的选项,因为使用索引不够稳定,你可以想象。如果这是您在页面中唯一的iframe,请尝试
driver.switchTo().frame(0)
driver.switchTo().frame(iframe_element)
最常见的一个。您可以像其他元素一样找到iframe,然后将其传递给方法。
这里按标题属性定位似乎是最好的。
driver.switchTo().frame(driver.findElement(By.cssSelector("iframe[title='Fill Quote']")));
// driver.switchTo().frame(driver.findElement(By.xpath(".//iframe[@title='Fill Quote']")));
答案 1 :(得分:0)
最有可能的是,您的iframe不可见或您的窗口未处于活动状态。
Python中的:
BackgroundJob.Enqueue(() => new MyJob().Execute(path));
Java中的:
driver.switch_to_default_content()
wait.until(EC.frame_to_be_available_and_switch_to_it("yourFrame"))