下面的屏幕截图是iframe的HTML代码。
前两个红色标记的对象可以通过Webdriver识别,但Webdriver不能单击最后标记的对象(这是一个按钮)。我试过用不同的方式点击它(比如点击ID,名字等)。但我仍然无法点击提交按钮。
请帮我点击框内的提交按钮。
答案 0 :(得分:3)
您需要使用switchTo().frame()
来访问frame
或iframe
内的内容。
driver.switchTo().frame("name"); // where name is the name of the iframe i.e. name="frameName", you would use framename
driver.switchTo().frame(0); // You can switch to the frame by index
driver.switchTo().frame(element); // You can switch to the frame by a WebElement reference
在您的特定情况下,您可以使用:
driver.switchTo().frame("InstantSgn");
在iframe
上下文中完成后切换出框架:
driver.switchTo().defaultContent();
答案 1 :(得分:0)
今天我遇到了同样的问题。可能是由于您没有切换到相框,或者是我经历过的事情。
这仅发生在IE中。在Chrome中根本没有问题。
如您所见,我确实切换到框架以确保可以找到此元素。但是,事实并非如此。我发现的唯一解决方案是将Thread.Sleep(2000)通过。我不太清楚为什么,但是我想这与DOM中无法提供的内容有关。