selenium xpath点击了错误的文字

时间:2017-01-12 04:56:20

标签: selenium xpath

我是硒的新手。

我正在使用Facebook页面并尝试在“注册类别”下的“手机号码或电子邮件”字段中输入“john”

当我运行应用程序时,在“电子邮件或电话”字段中输入文本“john”。这是在现有用户类别下。

以下是我正在使用的 xpath 。我知道我可以使用其他定位器,但想尝试xpath定位器。

WebElement mobile = driver.findElement(By.xpath("//div[@id='reg_form_box']/div[2]/div[1]/div[1]/div[1]"));

    mobile .sendKeys("john");

3 个答案:

答案 0 :(得分:0)

嗨,Shakeer Mirza尝试使用以下代码

<强>的xpath(“HTML /体/格[1] / DIV [2] / DIV [1] / DIV / DIV / DIV / DIV / DIV [2] / DIV [2] / DIV / DIV / DIV / DIV [1] /形式/ DIV [1] / DIV [2] / DIV [2] / DIV / DIV [1] /输入“))

示例脚本:

公共类Facebook {     静态WebDriver驱动程序;

@Test
public static void test() throws IOException, InterruptedException {

    driver = new FirefoxDriver();
    driver.get("https://www.facebook.com/");
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);        
    driver.manage().window().maximize();  

    driver.findElement(By.xpath("html/body/div[1]/div[2]/div[1]/div/div/div/div/div[2]/div[2]/div/div/div/div[1]/form/div[1]/div[2]/div[2]/div/div[1]/input")).sendKeys("admin");}}

答案 1 :(得分:0)

您尝试处理<div>元素,而目标应为<input>。请尝试以下选择确切元素:

WebElement mobile = driver.findElement(By.xpath('//input[@placeholder="Email or Phone Number"]'));
mobile .sendKeys("john");

答案 2 :(得分:0)

感谢所有人,当我在最后添加输入时,这是正常工作

WebElement mobile = driver.findElement(By.xpath(“// div [@ id ='reg_form_box'] / div [2] / div [1] / div [1] / div [1] / input”) );

    mobile .sendKeys("john");

现在我的问题是,当我没有添加“输入”时,应用程序在错误字段上输入文本而不是抛出一些错误。