Monday, 25 February 2019

selenium driver で 画面をスクロールするには

HiFiWidowです。

最近、seleniumにハマっています。色々と作っています。
今日は、selenium driverで画面をスクロールするには、、です。
JavascriptExecutorなるものを使います。
縦に800ピクセルスクロールするには、こうします。


JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollBy(0,800)");


ちゃんとスクロールしてくれますよ〜。

↓来て頂きありがとうございます。クリックしていただくと、励みになります。↓
にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村

Sunday, 24 February 2019

ブログと言えども、テストをしなくては

さて、色々と試している私ですが、いくらブログといえどもテストをしたくなりました。
と言う訳で、Eclipseでコードを書きまして、自動化テストをしたのです。

testNGと言うテストのフレームワークを使って、テストしてみました。

簡単なテストです。
結果のスクリーンショットはこちら。

ChromeとFirefoxのブラウザでちゃんと動くかテストしました。seleniumと言うwebドライバーを使いました。
どうやったかと言うと、
test.xmlと言うxmlファイルを用意しました。これはどのブラウザでテストするのかを設定するfileです。
メインのコードはこう書きました。(事故防止のためにウェブアドレスは変更してあります)
--- code ---
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class AccessMyonlyone {
//String browser = "Chrome";
WebDriver driver;

@BeforeTest
@Parameters("browser")
public void setUP(String browser) throws Exception {
//Check if parameter passed from TestNG is 'firefox'
if(browser.equalsIgnoreCase("Firefox")){
//create firefox instance
System.out.println("In Firefox");
driver = new FirefoxDriver();
System.setProperty("webdriver.firefox.marionette", "..//..//geckodriver.exe");

}
//Check if parameter passed as 'chrome'
else if(browser.equalsIgnoreCase("Chrome")){
//set path to chromedriver.exe
System.out.println("In Chrome");
driver = new ChromeDriver();
System.setProperty("webdriver.chrome.driver","..//..//chromedriver.exe");
//create chrome instance
}
else{
//If no browser passed throw exception
throw new Exception("Browser is not correct");
}
driver.navigate().to("https://www.my0000.com");

}
@BeforeTest
public void start() {
String a = driver.getCurrentUrl().toString();
System.out.println(a);
driver.findElement(By.linkText("OK")).click();
}
@Test
public void test1() {
driver.findElement(By.linkText("Videos")).click();
System.out.println("Clicked Videos");
String a = driver.getCurrentUrl().toString();
System.out.println(a);
}
@AfterTest
public void quit() {
//driver.close();
driver.quit();
}
}
--- code end ----

xmlファイルの中身はこう書きました。
--- xml contents ---
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestSuite" thread-count="2" parallel="tests" >
<test name="ChromeTest">
<parameter name="browser" value="chrome"/>
<classes>
<class name="AccessMyonlyone"/>
</classes>
</test>
<test name="FirefoxTest">
<parameter name="browser" value="firefox" />
<classes>
<class name="AccessMyonlyone">
</class>
</classes>
</test>

</suite>
--- end xml contents ---

こうすると一つのクラスを複数のブラウザでテストできます。
細かい事を書くともっとあるのですが、とりあえず、ざっくりと書いてみました。

↓来て頂きありがとうございます。クリックしていただくと、励みになります。↓
にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村