这是我第一次尝试使用Selenium,我在使用“FindElement(By.Id)”时遇到了问题。我的脚本使用了几个By.Name方法,它们工作得很好。
下面是我的代码:
// Enter the user name and password
IWebElement username = FF_Browser.FindElement(By.Name("txtUserName"));
username.SendKeys("user1");
IWebElement password = FF_Browser.FindElement(By.Name("txtPassword"));
password.SendKeys("pw1");
// Click the Login button
FF_Browser.FindElement(By.Name("btnLogon")).Click();
try
{
bool loginResult = FF_Browser.FindElement(By.Id("lblUserName")).Text == "user1";
return loginResult;
}
catch (NoSuchElementException)
{
return false;
}问题是FindElement(By.Id("lblUserName"))永远找不到这个元素。我在源代码中反复检查了一下,它肯定是'lblUserName'
这是Selenium中的一个bug吗?
编辑
我现在已经在Firefox和IE驱动程序中尝试了这段代码,两者都显示出相同的行为。我一定漏掉了什么基本的东西?在尝试查找元素之前,我尝试刷新浏览器,但结果相同。
发布于 2011-10-24 21:43:48
回答我自己的问题:这当然是一个只有初学者才会跳过的简单的东西:我试图寻找的元素在一个框架中。
这一行FF_Browser.SwitchTo().Frame("ApplicationHeaderFrame");解决了这个问题。
https://stackoverflow.com/questions/7850660
复制相似问题