【发布时间】:2014-05-21 17:16:15
【问题描述】:
下面的屏幕截图是 iframe 的 HTML 代码。
Webdriver 可以识别前两个红色标记的对象,但是 Webdriver 不能单击最后一个标记的对象(即按钮)。我尝试使用不同的方式单击它(例如按 id、名称等单击)。但是还是不能点击提交按钮。
请帮我点击框架内的提交按钮。
【问题讨论】:
-
是否有代码如何执行点击?发布错误怎么样?
下面的屏幕截图是 iframe 的 HTML 代码。
Webdriver 可以识别前两个红色标记的对象,但是 Webdriver 不能单击最后一个标记的对象(即按钮)。我尝试使用不同的方式单击它(例如按 id、名称等单击)。但是还是不能点击提交按钮。
请帮我点击框架内的提交按钮。
【问题讨论】:
您需要使用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();
【讨论】:
今天我也遇到了同样的问题。可能只是因为您没有切换到框架,或者可能是我经历过的事情。
这仅在 IE 中发生在我身上。在 Chrome 中完全没有问题。
如您所见,我确实切换到框架以确保可以找到此元素。但是,不可能。我找到的唯一解决方案是将 Thread.Sleep(2000) 让它通过。我不太清楚为什么,但我想这与 DOM 中不可用的内容有关。
【讨论】: