无法使用Selenium在Twitter帐户中获取用户名和密码

无法使用Selenium在Twitter帐户中获取用户名和密码,selenium,twitter,webdriver,Selenium,Twitter,Webdriver,我正在使用下面的代码登录twitter driver.get("https://twitter.com/login/"); driver.findElement(By.xpath("//*[@id='page-container']/div/div[1]/form/fieldset/div[1]/input")).sendKeys("viaxpath"); driver.findElement(By.xpath("//*[@id='page-container']/div

我正在使用下面的代码登录twitter

    driver.get("https://twitter.com/login/");
    driver.findElement(By.xpath("//*[@id='page-container']/div/div[1]/form/fieldset/div[1]/input")).sendKeys("viaxpath");
    driver.findElement(By.xpath("//*[@id='page-container']/div/div[1]/form/fieldset/div[2]/input")).sendKeys("viaxpath");

要在Chrome中获取CSS选择器,请执行以下操作:

  • 右键单击元素并选择“检查”
  • 右键单击DevTools的DOM浏览器中的元素
  • 选择“复制”>“复制选择器”
  • 或者,您也可以在这里获取XPath
  • 通过从Chrome的DevTools中获取CSS选择器并在控制台中进行测试,我可以输入用户名

    document.querySelector("#page-container > div > div.signin-wrapper > form > fieldset > div:nth-child(2) > input").value = "Timothy"
    
    在(Java)Selenium中,它看起来像:

    driver.findElement(By.cssSelector("#page-container > div > div.signin-wrapper > form > fieldset > div:nth-child(2) > input")).sendKeys("Timothy");
    

    您可能遇到的一个问题是,在页面准备就绪之前加载页面并尝试输入。因此,我建议在导航到页面和与输入交互之间进行一次比较。

    您提到的代码已经在工作了。您应该能够输入twitter帐户的用户名和密码。

    以下是您问题的答案:

    可以考虑构造一个<代码> XPath < />代码>,它唯一标识了<代码>用户名和<代码>密码字段,并且可以很容易地通过Self进行遍历。以下是您自己的代码,其中包含一些简单的调整,在我看来非常有效:

    WebDriver driver =  new FirefoxDriver();
    driver.manage().window().maximize();    
    driver.get("https://twitter.com/login/");
    driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
    driver.findElement(By.xpath("//div[@class='clearfix field']/input[@name='session[username_or_email]']")).sendKeys("id@domain.com");
    driver.findElement(By.xpath("//div[@class='clearfix field']/input[@name='session[password]']")).sendKeys("password");
    

    如果这回答了您的问题,请告诉我。

    我也尝试了相同的代码,但twitter不允许我在他们的文本字段中插入用户名和密码。@Mashhood让我们在下面的讨论中讨论这个问题