嗨, 我正在尝试将selenium与我的java项目的exe版本链接,以便在单击按钮时执行selenium。 Selenium代码是:
import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
public class Pay {
private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();
String Enum;
String cpr;
public Pay(String nEnum){
Enum = nEnum;
this.cpr = "000";
}
public Pay(String nEnum, String nCpr){
Enum = nEnum;
this.cpr = nCpr;
}
public void setUp() throws Exception {
System.setProperty("webdriver.chrome.driver", "A:\\Documents\\NetBeansProjects\\Electricity\\chromedriver_win32\\chromedriver.exe");
driver = new ChromeDriver();
baseUrl = "http://www.bahrain.bh/";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
public void testRent() throws Exception {
driver.get(baseUrl + "/wps/portal/!ut/p/c5/04_SB8K8xLLM9MSSzPy8xBz9CP0os3gLAxNHQ093A3d_J29DA08_cw9TT1dvI8cgU_1wkA6zeGd3Rw8Tcx8DAwsXNwsDIydTM89AAxcDA09TiLwBDuBooO_nkZ-bqh-cmqdfkJ2d5uioqAgARs8Bqw!!/dl3/d3/L0lHSkovd0RNQU5rQUVnQSEhL1lCZncvYXI!/");
driver.findElement(By.cssSelector("a.toolbarLink > div")).click();
driver.findElement(By.xpath("//form[@id='viewns_7_804A1IG0GOBK10IN7H5IEK2AV1_:eServicesForm']/div/table/tbody/tr[7]/td[2]/table/tbody/tr/td[2]/a/span")).click();
driver.findElement(By.cssSelector("img[alt=\"Launch Service\"]")).click();
new Select(driver.findElement(By.id("viewns_7_OAHIGGG0GGV880I1V3LJ6130G3_:PayerLoginForm:mewIdType"))).selectByVisibleText("CPR");
driver.findElement(By.id("viewns_7_OAHIGGG0GGV880I1V3LJ6130G3_:PayerLoginForm:mewId")).clear();
driver.findElement(By.id("viewns_7_OAHIGGG0GGV880I1V3LJ6130G3_:PayerLoginForm:mewId")).sendKeys(cpr);
driver.findElement(By.id("viewns_7_OAHIGGG0GGV880I1V3LJ6130G3_:PayerLoginForm:mewAccountNo")).clear();
driver.findElement(By.id("viewns_7_OAHIGGG0GGV880I1V3LJ6130G3_:PayerLoginForm:mewAccountNo")).sendKeys(Enum);
driver.findElement(By.name("viewns_7_OAHIGGG0GGV880I1V3LJ6130G3_:PayerLoginForm:_id4")).click();
driver.findElement(By.cssSelector("input[type=\"checkbox\"]")).click();
driver.findElement(By.name("viewns_7_OAHIGGG0GGV880I1V3LJ6130G3_:_id0:_id1")).click();
driver.findElement(By.id("Debit Card")).click();
driver.findElement(By.xpath("//tr[7]/td[2]/span/label")).click();
driver.findElement(By.name("btnPay2")).click();
driver.findElement(By.name("Ecom_Payment_Card_Name")).clear();
driver.findElement(By.name("Ecom_Payment_Card_Name")).sendKeys("AAA");
driver.findElement(By.name("Ecom_Payment_Card_Number")).clear();
driver.findElement(By.name("Ecom_Payment_Card_Number")).sendKeys("123");
}
public void tearDown() throws Exception {
// driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
private boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
private boolean isAlertPresent() {
try {
driver.switchTo().alert();
return true;
} catch (NoAlertPresentException e) {
return false;
}
}
private String closeAlertAndGetItsText() {
try {
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
if (acceptNextAlert) {
alert.accept();
} else {
/*alert.dismiss();*/
}
return alertText;
} finally {
acceptNextAlert = true;
}
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Home
*/
我将调用此类并将其传递给所需信息并通过调用方法执行selenium代码。
我的代码在netbeans中执行时效果很好但是当它转换为exe文件时,我再也无法运行selenium了。
将运行selenium方法的其他类的代码:
String eNum =“123”;
Pay p1 = new Pay(eNum);
try {
p1.setUp();
} catch (Exception ex) {
Logger.getLogger(Building1.class.getName()).log(Level.SEVERE, null, ex);
}
try {
p1.testRent();
} catch (Exception ex) {
Logger.getLogger(Building1.class.getName()).log(Level.SEVERE, null, ex);
}
try {
p1.tearDown();
} catch (Exception ex) {
Logger.getLogger(Building1.class.getName()).log(Level.SEVERE, null, ex);
}
谢谢......