我一直在C#的Windows窗体中使用selenium在页面上输入用户名和密码,然后单击login,然后再执行一些操作。这很好用,但后面的步骤将涉及测量firefox对话框出现所需的时间,我认为不能用selenium来完成。因此我试图迁移到webdriver。当我尝试使用webdriver.sendkeys输入用户名和密码时,它会将光标放入正确的框中,但不会输入任何文本。我的硒代码是:
namespace Project1
{
public partial class Form1 : Form
{
public Form1()
{
Process.Start("D:\\startSelenium.bat");
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
ISelenium selenium = new DefaultSelenium("localhost", 4444, "*firefox", <baseURL>);
selenium.Start();
selenium.Open(<loginpage>);
selenium.Type("id=UserName", <username>);
selenium.Type("id=Password", <password>);
selenium.Click("css=input.button");
selenium.WaitForPageToLoad("40000");
...
我使用的webdriver代码是:
namespace Project2
{
public partial class Form1 : Form
{
public Form1()
{
Process.Start("D:\\startSelenium2.bat");
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
FirefoxProfile profile = new FirefoxProfile(C:\\Selenium");
IWebDriver driver = new FirefoxDriver(profile);
driver.Navigate().GoToUrl(<loginpage>);
driver.FindElement(By.Id("UserName")).Clear();
driver.FindElement(By.Id("UserName")).SendKeys(<username>);
driver.FindElement(By.Id("Password")).Clear();
driver.FindElement(By.Id("Password")).SendKeys(<password>);
...
它被困在线
driver.FindElement(By.Id("UserName")).SendKeys(<username>);
我做错了什么?
答案 0 :(得分:0)
它给出了什么错误?如果它说该元素不存在,那就意味着你的
FindElement(By.Id("Password"))
无法正常工作,您需要仔细检查您尝试选择的元素的ID是否正确。另一个问题可能是密码字段以某种方式受到自动程序的保护,或者该字段实际上不接受字符串输入。