use*_*718 0 c# selenium-webdriver
这是我第一次尝试使用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;
}
Run Code Online (Sandbox Code Playgroud)
问题是FindElement(By.Id("lblUserName"))
永远找不到此元素。我在源代码中对in进行了两次和三次检查,这肯定是'lblUserName'
这是硒中的错误吗?
[编辑]
我现在已经在Firefox和IE驱动程序中尝试了此代码,并且都显示出相同的行为。我一定缺少基本的东西吗?在尝试查找元素之前,我尝试刷新浏览器,但结果相同。
回答我自己的问题:当然,只有初学者会跳过一些简单的事情:我试图找到的元素在框架中。
这一行解决FF_Browser.SwitchTo().Frame("ApplicationHeaderFrame");
了这个问题。