硒编码

时间:2016-10-17 08:58:10

标签: java selenium-webdriver

我是selenium的新手,我创建了一个包含不同类的java项目(每个类都适用于我的应用程序)。该项目只有1个main方法,具有main方法的类由所有其他类继承。 那么,以这种方式编码是否正确,具有main的类是否被所有其他类继承? 还是有其他更好的代码方式吗? 另一个问题是, 除了用于调用不同类的方法的所有类的对象之外,main方法还具有chrome驱动程序启动。 main应该只包含所有类的对象吗?或者有没有办法以其他方式启动chrome。 我的代码示例(主类和登录类):

import UIKit

class MyView: UIView {
  override init(frame: CGRect) {
      super.init(frame: frame)
      didLoad()
  }

  required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    didLoad()
  }

  convenience init() {
    self.init(frame: CGRectZero)
  }

  func didLoad() {
    //Place your initialization code here
    self.layer.borderWidth = 2;
    self.layer.borderColor = UIColor.grayColor().CGColor;
  }
}

}

    public class Main {
static WebDriver driver;
static Logger logger;
public static void main(String[] args) throws IOException {
    logger=Logger.getLogger("Log4jdemo");
    PropertyConfigurator.configure("Log4j.property.txt");
    String exePath = "F:\\selenium\\Chrome Driver\\New Folder\\chromedriver.exe";
    System.setProperty("webdriver.chrome.driver", exePath);
    driver = new ChromeDriver();
    driver.get("https://www.gmail.com");
    driver.manage().window().maximize();
    logger.info("Browser launched");
    FluentWait<WebDriver> wait = new FluentWait<WebDriver>(driver);
    wait.withTimeout(15, TimeUnit.SECONDS);
    wait.pollingEvery(1, TimeUnit.SECONDS);
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("ei-login-Username")));
    Login l1 = new Login();
    l1.login();
    A name= new A();
    name.InitiateJourney();
    B IO = new B();
    IO.Help();
    Agreeterms a = new Agreeterms();
    a.Agreeterm();
    AmendDetails ad = new AmendDetails();
    ad.Amend();
    AmendBank ab = new AmendBank();
    ab.amendbankdetails();
}

}

1 个答案:

答案 0 :(得分:0)

尝试TestNGJUnit框架,主要方法对于selenium不是强制性的。您可以编写自己的类和方法。可以通过Annotations调用它们。