Selenium Webdriver sendkeys()无效

时间:2014-02-26 14:06:32

标签: c# selenium-webdriver

我一直在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>);

我做错了什么?

1 个答案:

答案 0 :(得分:0)

它给出了什么错误?如果它说该元素不存在,那就意味着你的

FindElement(By.Id("Password"))

无法正常工作,您需要仔细检查您尝试选择的元素的ID是否正确。另一个问题可能是密码字段以某种方式受到自动程序的保护,或者该字段实际上不接受字符串输入。