【问题标题】:selenium xpath is clicking on the wrong textselenium xpath 正在点击错误的文本
【发布时间】:2017-01-12 04:56:19
【问题描述】:

我是硒新手。

我正在使用 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");

【问题讨论】:

  • 您正在导航到注册页面吗?
  • 输入元素不在您的 xpath 中

标签: selenium xpath


【解决方案1】:

您正在尝试处理<div> 元素,而目标应该是<input>。尝试以下选择确切的元素:

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

【讨论】:

    【解决方案2】:

    嗨,Shakeer Mirza 试试下面的代码

    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"))

    示例脚本:

    公开课 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");}}
    

    【讨论】:

    • 2 种 xpath 1.绝对 xpath 和 2.相对 xpath
    【解决方案3】:

    谢谢大家,当我最后添加输入时,这一切正常

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

        mobile .sendKeys("john");
    

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

    【讨论】:

      猜你喜欢
      • 2021-07-11
      • 2016-04-29
      • 2021-06-09
      • 1970-01-01
      • 1970-01-01
      • 2017-12-22
      • 1970-01-01
      • 2013-12-15
      • 1970-01-01
      相关资源
      最近更新 更多