我使用以下代码登录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");
答案 0 :(得分:0)
在Chrome中获取CSS选择器:
我可以通过从Chrome的DevTools中获取CSS Selector并在控制台中测试来输入用户名。
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");
您可能遇到的一个问题是您加载页面并尝试在准备好之前输入。因此,我建议在导航到页面和与输入交互之间执行explicit wait。
答案 1 :(得分:0)
您提到的代码已经在使用了。您应该能够输入Twitter帐户的用户名和密码。
答案 2 :(得分:0)
以下是您的问题的答案:
您可以考虑构建一个唯一标识xpath
和username
字段的password
,并且可以通过Selenium轻松遍历。这是你自己的代码,有一些简单的调整,可以在我的最后工作:
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");
如果这回答你的问题,请告诉我。