【问题标题】:How does this simple Java/Selenium WebDriver Code work这个简单的 Java/Selenium WebDriver 代码是如何工作的
【发布时间】:2013-10-11 22:07:16
【问题描述】:

我是 selenium 的新手,昨天通过观看一些视频开始学习它。我对这段代码的工作方式有疑问。请解释一下。

// I am creating a Object reference for the FirefoxDriver class
FirefoxDriver f=new FirefoxDriver();

//findElementByClassName method is available in FirefoxDriver class. i Can understand this.
f.findElementByClassName("Email").sendKeys("abc");

sendkeys("abc") 是如何工作的?它也是 FirefoxDriver 类的方法吗?但是我知道它在测试字段中输入了“abc”。我只是想知道如何在这里使用它。

我以不同的方式尝试了同一段代码。在这里,WebElement 类如何与 firefoxDriver 类一起使用?

FirefoxDriver f=new FirefoxDriver();
WebElement ex= f.findElementByClassName("Email");
ex.sendKeys("abc");

这两段代码都能正确完成所需的工作,但它们是如何工作的?

【问题讨论】:

    标签: java selenium automation webdriver selenium-webdriver


    【解决方案1】:

    是的,这两段代码都有效。

    基本上,当您执行任何findElement 函数时,它将返回一个WebElement。 WebElement 是一个指向附加到浏览器的 HTML 元素的对象。然后当您sendKeys() 时,驱动程序将转到该元素并键入。

    【讨论】:

    • 谢谢伙计..明白了。我可以理解第二种情况!但是在第一个场景中它是如何工作的 f.findElementByClassName("Email").sendKeys("abc");
    • 因为当它运行时,它仍然会返回一个 webelement,然后 sendKeys() 给它。您只是没有将网络元素保存为名称。
    • 太棒了!以及 Eclipse 是如何理解这一点的......在输入 "f.findElementByClassName("Email"). " 之后,它正确地向我展示了所有可能的功能,比如 getAttribut() 等等......
    • 因为它的魔力。你可以深入了解细节,但它可能真的很复杂,而且不是那么重要的 IMO。
    【解决方案2】:

    WebElements 表示为 HTML 元素。

    webdriver.findElement 方法将获取满足条件的 HTML 元素。 以下场景 Web 驱动程序将搜索具有类值 email 的 HTML 元素,它会返回相应的元素,selenium 可以对其进行进一步的操作,如点击、发送键等......

    webDriver.findElement(By.xpath("//*[@class='Email']") 要么 webDriver.findElement(By.className("Email")

    【讨论】:

      【解决方案3】:

      两者完全相同。您可以使用任何方法。
      另一个优点第二种方法是,您可以重复使用相同的“前”WebElement 来进一步执行其他功能在您的代码中。这为您提供可重用性

      第一段代码:

      FirefoxDriver f=new FirefoxDriver();
      f.findElementByClassName("Email").sendKeys("abc");
      

      -在这里,我们有两个方法级联来执行所需的功能。
      - 创建“FirefoxDriver”实例“f”,然后使用此实例调用其方法“findElementByClassName”,该方法返回一个WebElement,然后“sendKeys”fn 将值“abc”输入到该网络元素。

      第二段代码:

      FirefoxDriver f=new FirefoxDriver();
      WebElement ex= f.findElementByClassName("Email");
      ex.sendKeys("abc");
      

      -这里有两个实例,一个 'f' 用于 FirefoxDriver,'ex' 用于 'WebElement'。
      -首先,创建 FirefoxDriver 的新实例并使用它来查找 WebElement 并将其存储在 'ex' 中并使用这个“前”,我们正在执行 sendKeys() 操作。

      【讨论】:

        猜你喜欢
        • 2019-11-23
        • 2012-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-13
        • 2013-04-23
        • 2015-04-09
        • 2013-07-24
        相关资源
        最近更新 更多