我使用WebDriver不测试,而是做常规的事情,比如找出我的账户余额。
在这样做时,我有一些未找到的元素,我通过窗口迭代并且能够登录。
现在,我登录,我用的ID发现,与XPath发现,按类查找和对象未找到,让我的平衡是在页面上(至少我可以看到它,它是在萤火虫)。 我打印出页面源,但页面源只有初始源,没有javascript修改。
我试图通过正文的javascript获取内部html,它仍然给了我用页面源获得的html。
WebDriver是否可能无法访问DOM?
我看到的所有帖子都说你必须等待足够长的时间,我有一个30秒的隐含等待。我倾向于认为这不是一个等待的问题。
当我使用firebug时,我会看到元素,这就是我获取xpath的方式。但它无法用xpath找到它。
如果我能将源(由javascript生成)保存到存在所有元素的文件中,我甚至会感到满意。
我将它与firefox和windows xp sp3一起使用。
我使用此代码循环iframe
List <WebElement> framesList = driver.findElements(By.xpath("//iframe"));
for(WebElement frame:framesList){
element = driver.findElement(By.className("account-balance"));
String et= element.getText();
System.out.println(et);
}
System.out.println("frames:" + framesList.size());
我得到帧:0它没有检测到帧。
答案 0 :(得分:1)
您需要将.findElement包装在try / catch中。在try catch子句中,并使用循环,您可以将隐式超时减少到5秒,并且可以重试,直到不再有异常。也许你会从my post here获得一些想法。
答案 1 :(得分:1)
我弄清楚我的问题是什么。
我上面使用的代码不起作用。 它是迭代帧但不切换到它们。
这就是它无法找到默认内容的原因。
selenium ide不记录所需的帧和窗口切换太糟糕了。
我看到另一个答案也谈到这一点 How to switch between frames in Selenium WebDriver using Java