そこで、 Selenium IDEを使用して、実行したい自動化のテスト ケースを作成しました。この場合のループ/フロー制御を作成できるようにしたいので、Selenium IDE から Java のようなものにエクスポートする必要があると考えました (私は Java に最も精通しています)。Java/JUnit4/Web Driverにエクスポートしました。Eclipseで Java ファイルを実行するのが一番うまくいくと思いますが、もっと簡単なことを知っている人がいたら教えてください。とにかく、Eclipse を介してこの Java を実行する方法について、適切な説明が見つかりませんでした。
私が読んだほとんどのことは、ビルド パス ライブラリにSelenium Standalone Serverが含まれていることを確認するように指示しています。私が読んだ事実上すべてのものは、Selenium Remote Control を使用するように指示しています。ただし、RC は減価償却されていると思いました。Selenium からダウンロードした最新の Web ドライバーで動作させる方法があるかどうか疑問に思っています。また、私が読んだほとんどのものは、public static void main()を使用する必要があることを教えてくれます。これは、エクスポートされたセレンが提供するコードを変更する方法がわからないため、少し厄介です(明らかに、すべてを貼り付けることができません)メインメソッドで)。
Selenium の Java へのエクスポートからコードの実行まで、誰かが私を案内してくれるなら、私は永遠にあなたのお世話になります。
Selenium が提供するコード: package com.example.tests;
package com.rackspace;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.NoAlertPresentException;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
public class RackspaceContactAutomation {
private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();
@Before
public void setUp() throws Exception {
driver = new FirefoxDriver();
baseUrl = "https://cp.rackspace.com/Exchange/Mail/Contacts/List.aspx?selectedDomain=blahblahblah.com";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void testContactAutomationJava() throws Exception {
driver.get(baseUrl + "/Exchange/Mail/Contacts/List.aspx?selectedDomain=blahblahblah.com");
driver.findElement(By.linkText("Mr. Man")).click();
driver.findElement(By.linkText("Contact Information")).click();
new Select(driver.findElement(By.id("PhoneNumberType"))).selectByVisibleText("Mobile");
driver.findElement(By.id("MobilePhone")).sendKeys("999-999-9999");
new Select(driver.findElement(By.id("PhoneNumberType"))).selectByVisibleText("Fax");
driver.findElement(By.id("Fax")).sendKeys("999-999-9999");
driver.findElement(By.cssSelector("button.primary")).click();
}
@After
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;
}
}
}
これにより、4つのエラーが発生します(3つは注釈用で、削除できますが、1つfail
はtearDown()
メソッド用です。このコードを実際に実行するにはどうすればよいのでしょうか?
ありがとう!