我需要知道从其他方法或其他类中的类访问方法变量的方法。
下面的示例:我已将注册页面的所有定位器放在一个方法元素()中然后我尝试在同一个类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);
}
}
答案 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());
}
}