Selenium Java变量访问

时间:2016-03-11 05:46:15

标签: java selenium

我需要知道从其他方法或其他类中的类访问方法变量的方法。

下面的示例:我已将注册页面的所有定位器放在一个方法元素()中然后我尝试在同一个类A的main方法中使用标识符e1,而在其他类B中我创建了一个对象参考A类,然后尝试相同。它不起作用,我需要知道正确的方法。

public class test3 {

     public void elements(){

     By e1=By.id("at-i");
     By e2=By.xpath("//td/td[2]");

    }

     public static void main (String args[])
     {

     WebDriver driver=new FirefoxDriver();
     driver.get("http://testwebsite.com");
     WebElement a1=driver.findelement(e1);

     }
    }

    class b{

     public static void main (String args[]) {

         test3 x=new test3();

         Webelement a2=x.driver.findelement(e2);

     }   
}

3 个答案:

答案 0 :(得分:0)

您无法从其他方法或类中的其他类访问变量。方法中定义的变量是该方法的本地变量。

如果您想在方法之间共享变量,那么您需要将它们指定为类的成员变量(我们也不要将main方法与selenium一起使用)。

在您的情况下,我建议您了解TestNG框架。

答案 1 :(得分:0)

变量E1和E2仅具有elements()方法的局部范围。

您必须全局声明变量,以便在任何地方使用Class访问它们。

提示:在elements()方法之外但在test3类内声明变量。

答案 2 :(得分:0)

检查出来。希望下面的代码可以帮助你。

包示例;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class A {
    public static WebDriver driver = new FirefoxDriver();

    public By elements() {
        By e2 = By.xpath("//td/td[2]");
        return e2;
    }

    public static void main(String args[]) {
        A conA = new A();
        driver.get("http://testwebsite.com");
        WebElement a1 = driver.findElement(conA.elements());
        a1.sendKeys("hello");
    }
}

class B1 {
    public static void main(String args[]) {

        A x = new A();

        WebElement b1 = x.driver.findElement(x.elements());
    }
}