[英]sendkeys() not working in selenium webdriver
直到昨天,下面提到的代码都可以正常工作,但是现在我遇到了一些问题。 该代码将打开firefox浏览器,然后加载facebook.com,但该代码未将电子邮件和密码发送到Web浏览器,即sendkeys()无法正常工作。 我已验证电子邮件和密码的文本框的ID是否正确,但代码无法正常工作。
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.WebDriver;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
public class Webdriver2 {
WebDriver driver ;
JavascriptExecutor jse;
public void invokeBrowser()
{
try
{
System.setProperty("webdriver.gecko.driver","C:\\geckodriver-v0.19.0-win64\\geckodriver.exe");
driver = new FirefoxDriver();
driver.manage().deleteAllCookies();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS );
driver.get("https://www.facebook.com/");
search();
}
catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public void search()
{
try
{
driver.findElement(By.id("email")).sendKeys("example@gmail.com");
Thread.sleep(4000);
driver.findElement(By.id("pass")).sendKeys("password");
Thread.sleep(4000);
driver.findElement(By.id("u_0_2")).click();
Thread.sleep(4000);
/*driver.findElement(By.name("q")).sendKeys("spit mumbai");
Thread.sleep(4000);
driver.findElement(By.xpath(" //button[@aria-label='Search' and @data-testid='facebar_search_button'] ")).click();*/
}
catch(InterruptedException e)
{
e.printStackTrace();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Webdriver2 w = new Webdriver2();
w.invokeBrowser();
}
}
在执行sendKeys之前,请尝试单击两个文本框:
driver.findElement(By.id("email")).click();
driver.findElement(By.id("email")).sendKeys("example@gmail.com");
文本框可能需要重点关注。
在这里,我们需要注意以下几点:
Email or Phone
字段位于<input>
标记内,因此在选择定位器时需要将其考虑在内。 Password
字段也在<input>
标记内,因此我们在选择定位器时需要考虑到它。 Log In
按钮的id
是动态的,并且也在<input>
标记内,那么我们也需要考虑这一因素。 这是使用cssSelector
访问URL https://www.facebook.com/
的最小示例代码块,提供Email or Phone
和Password
,最后单击“ Log In
按钮:
package demo; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class Facebook_Login_CSS_FF { public static void main(String[] args) { System.setProperty("webdriver.gecko.driver", "C:\\\\Utility\\\\BrowserDrivers\\\\geckodriver.exe"); WebDriver driver = new FirefoxDriver(); driver.get("https://www.facebook.com/"); driver.findElement(By.cssSelector("input#email")).sendKeys("Ryusei"); driver.findElement(By.cssSelector("input[name='pass']")).sendKeys("Nakamura"); driver.findElement(By.cssSelector("input[value='Log In']")).click(); } }
检查并查看是否根据浏览器版本使用了驱动程序的最新版本。 这基本上可以解决问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.