我不知道这是否是“正常”行为,但到目前为止我没有看到任何解释。我正在测试一个没有名称的javascript弹出窗口,以便能够测试该弹出窗口上的元素,我必须等到弹出窗口完全加载。我没有用来检查div元素是否存在,因为它是here但是尝试了其他的东西。
这是我尝试的,最奇怪的是它有效。
browser.waitForPopUp("window", "3000");
它适用于我的所有弹出窗口(它们都没有名称)。我尝试了其他字符串,如“默认”,“空”,甚至是一个空字符串,但它们都没有工作(我读到某处,我忘记了,如果我找到了链接,我会更新,所以如果我设置第一个,我会读到参数为“null”,然后它将进行测试等待,直到弹出加载,当我尝试时坚果,我只遇到超时问题。)
任何人都知道发生了什么以及为什么会有效?
谢谢!
答案 0 :(得分:1)
可以在此处查看waitForPopUp方法的文档 - http://selenium.googlecode.com/svn/trunk/docs/api/java/com/thoughtworks/selenium/Selenium.html#waitForPopUp%28java.lang.String,%20java.lang.String%29
关于第一个参数,它说“windowID - 将出现的窗口的JavaScript窗口”名称“(不是标题栏的文本)如果未指定或指定为”null“,则此命令将等待要出现的第一个非顶部窗口(如果您同时使用多个弹出窗口,请不要依赖此窗口)。“
我猜想当你说你的弹出窗口没有名字时,你实际上指的是标题。弹出窗口的实际名称可能实际上是“窗口”。
在w3schools示例http://www.w3schools.com/jsref/prop_win_name.asp上,您可以看到弹出窗口的名称与标题栏中的名称不同。事实上,这个名字并没有出现在任何地方。