Javaを使用してSelenium WebDriverでPhantomJSを実装する方法

シリンクソス:

私は本当に怒っています。私はこのコードを持っています:

public class Creazione extends TestCase {
    private PhantomJSDriver driver;
    private String baseUrl;
    private boolean acceptNextAlert = true;
    private StringBuffer verificationErrors = new StringBuffer();

    @Before
    public void setUp() throws Exception {
        File file = new File("C:/Program Files/phantomjs-1.9.7-windows/phantomjs.exe");
        System.setProperty("phantomjs.binary.path", file.getAbsolutePath());
        driver = new PhantomJSDriver();
        baseUrl = "http://www.gts.fiorentina.test/";
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        driver.get(baseUrl + "/Account/Login.aspx?ReturnUrl=%2f");
        findDynamicElement(By.id("tbUserName_I"), 2000);
        driver.findElement(By.id("tbUserName_I")).clear();
        driver.findElement(By.id("tbUserName_I")).sendKeys("rogai");
        driver.findElement(By.id("tbPassword_I")).clear();
        driver.findElement(By.id("tbPassword_I")).sendKeys("Fiorentina2014!");
        driver.findElement(By.id("btnLogin_CD")).click();
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    }

    @Test
    public void testCreazione() throws Exception {
        driver.get(baseUrl + "/SegreteriaSportiva/Calciatori.aspx");
        findDynamicElement(By.cssSelector("#ASPxButton1_CD > span"), 2000);
        driver.findElement(By.cssSelector("#ASPxButton1_CD > span")).click();
        findDynamicElement(By.id("FrmEdit_TS_TipoPersonaId_FK_B-1"), 2000);
        driver.findElement(By.id("FrmEdit_TS_TipoPersonaId_FK_B-1")).click();
        driver.findElement(By.id("FrmEdit_TS_TipoPersonaId_FK_DDD_L_LBI2T0")).click();
        driver.findElement(By.id("FrmEdit_Nome_I")).clear();
        driver.findElement(By.id("FrmEdit_Nome_I")).sendKeys("Prova");
        driver.findElement(By.id("FrmEdit_Cognome_I")).clear();
        driver.findElement(By.id("FrmEdit_Cognome_I")).sendKeys("Calciatore");
        driver.findElement(By.id("FrmEdit_TS_RuoloId_FK_B-1")).click();
        driver.findElement(By.id("FrmEdit_TS_RuoloId_FK_DDD_L_LBI3T0")).click();
        driver.findElement(By.id("FrmEdit_DataNascita_I")).clear();
        driver.findElement(By.id("FrmEdit_DataNascita_I")).sendKeys("01/01/2014");
        driver.findElement(By.id("FrmEdit_Cittadinanza_I")).clear();
        driver.findElement(By.id("FrmEdit_Cittadinanza_I")).sendKeys("italiana");
        driver.findElement(By.id("FrmEdit_LuogoNascita_I")).clear();
        driver.findElement(By.id("FrmEdit_LuogoNascita_I")).sendKeys("roma");
        driver.findElement(By.cssSelector("#BTN_Edit_CD > span")).click();
        driver.findElement(By.id("Grid_DXFREditorcol3_I")).click();
        driver.findElement(By.id("Grid_DXFREditorcol3_I")).sendKeys("Prova");
        assertEquals("Prova",driver.findElement(By.xpath("//tr[@id='Grid_DXDataRow0']/td[3]")).getText());
    }
}

実行後、実行時にこれらのエラーが発生します。以下はそのトレースです---

org.openqa.selenium.InvalidElementStateException: {"errorMessage":"Element is not currently interactable and may not be manipulated","request":{"headers":{"Accept-Encoding":"gzip,deflate","Connection":"Keep-Alive","Content-Length":"27","Content-Type":"application/json; charset=utf-8","Host":"localhost:20497","User-Agent":"Apache-HttpClient/4.3.2 (java 1.5)"},"httpVersion":"1.1","method":"POST","post":"{\"id\":\":wdc:1402393987914\"}","url":"/clear","urlParsed":{"anchor":"","query":"","file":"clear","directory":"/","path":"/clear","relative":"/clear","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/clear","queryKey":{},"chunks":["clear"]},"urlOriginal":"/session/e4b71580-f084-11e3-959e-273aa801dd81/element/%3Awdc%3A1402393987914/clear"}}
Command duration or timeout: 215 milliseconds
Build info: version: '2.42.1', revision: '68b415a', time: '2014-05-29 16:17:18'
System info: host: 'Silvio-Acer', ip: '10.10.1.122', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_55'
Session ID: e4b71580-f084-11e3-959e-273aa801dd81
Driver info: org.openqa.selenium.phantomjs.PhantomJSDriver
Capabilities [{platform=XP, acceptSslCerts=false, javascriptEnabled=true, browserName=phantomjs, rotatable=false, driverVersion=1.1.0, locationContextEnabled=false, version=1.9.7, cssSelectorsEnabled=true, databaseEnabled=false, handlesAlerts=false, browserConnectionEnabled=false, webStorageEnabled=false, nativeEvents=true, proxy={proxyType=direct}, applicationCacheEnabled=false, driverName=ghostdriver, takesScreenshot=true}]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:156)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:600)
    at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:268)
    at org.openqa.selenium.remote.RemoteWebElement.clear(RemoteWebElement.java:113)
    at com.example.tests.Creazione.testCreazione(Creazione.java:59)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at junit.framework.TestCase.runTest(TestCase.java:176)
    at junit.framework.TestCase.runBare(TestCase.java:141)
    at junit.framework.TestResult$1.protect(TestResult.java:122)
    at junit.framework.TestResult.runProtected(TestResult.java:142)
    at junit.framework.TestResult.run(TestResult.java:125)
    at junit.framework.TestCase.run(TestCase.java:129)
    at junit.framework.TestSuite.runTest(TestSuite.java:255)
    at junit.framework.TestSuite.run(TestSuite.java:250)
    at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:84)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.openqa.selenium.remote.ScreenshotException: Screen shot has been taken
Build info: version: '2.42.1', revision: '68b415a', time: '2014-05-29 16:17:18'
System info: host: 'Silvio-Acer', ip: '10.10.1.122', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_55'
Driver info: driver.version: RemoteWebDriver
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:136)
    ... 23 more
Caused by: org.openqa.selenium.remote.ErrorHandler$UnknownServerException: {"errorMessage":"Element is not currently interactable and may not be manipulated","request":{"headers":{"Accept-Encoding":"gzip,deflate","Connection":"Keep-Alive","Content-Length":"27","Content-Type":"application/json; charset=utf-8","Host":"localhost:20497","User-Agent":"Apache-HttpClient/4.3.2 (java 1.5)"},"httpVersion":"1n.1","method":"POST","post":"{\"id\":\":wdc:1402393987914\"}","url":"/clear","urlParsed":{"anchor":"","query":"","file":"clear","directory":"/","path":"/clear","relative":"/clear","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/clear","queryKey":{},"chunks":["clear"]},"urlOriginal":"/session/e4b71580-f084-11e3-959e-273aa801dd81/element/%3Awdc%3A1402393987914/clear"}}
Build info: version: '2.42.1', revision: '68b415a', time: '2014-05-29 16:17:18'
System info: host: 'Silvio-Acer', ip: '10.10.1.122', os.name: 'Windows 7', os.arch: 'x86',       os.version: '6.1', java.version: '1.7.0_55'
    Driver info: driver.version: unknow

私はphantomjs.exeをWindowsパスに追加し、外部ライブラリとしてghostdriver.jarを追加しましたが、何も...

私がそれを働かせようとしているのは2日間のようです...

サンカル:

これを試してください、それは私のために働きました

DesiredCapabilities caps = new DesiredCapabilities();
caps.setJavascriptEnabled(true);                
caps.setCapability("takesScreenshot", true);  
caps.setCapability(
                        PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
                        "your custom path\\phantomjs.exe"
                    );
WebDriver driver = new  PhantomJSDriver(caps);

その後、それらの残りは似ています。そして、plsはあなたの観察に親切にコメントし、素晴らしい一日を過ごします:)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

appcacheは、phantomjsを使用するSelenium Webdriver(JS実装)ではサポートされていませんか?

分類Dev

Javaを使用してSelenium WebDriverでiframeを処理する方法

分類Dev

JavaでSelenium Webdriverを使用してタグ値を取得する方法

分類Dev

C# を使用して Selenium.Webdriver + PhantomJS で実行時にプロキシを変更する

分類Dev

Javaを使用してSelenium WebDriverでマウスオーバー機能を実行する方法は?

分類Dev

JavaでSelenium WebDriverを使用してブラウザ名を取得する方法は?

分類Dev

Javaを使用してSelenium WebDriverでポップアップを処理する方法

分類Dev

Selenium WebDriver、Javaを使用してテキストでWeb要素を選択する方法

分類Dev

C#でSelenium WebDriverを使用してJavaScriptを実行する

分類Dev

JavaScriptをSelenium WebDriver Javaで使用する方法

分類Dev

JavaでSelenium WebDriverを使用して下にスクロールする方法

分類Dev

Selenium WebDriverでxPathを使用してSVG要素を取得する方法は?

分類Dev

JavaでSelenium WebDriverを使用してタブを切り替える

分類Dev

JavaでSelenium WebDriverを使用してWebElementが存在しないことを表明する

分類Dev

JavaでSelenium WebDriver(Selenium 2)を使用してテキストボックスに入力する方法

分類Dev

Javaを使用してSelenium WebDriverでフレームを切り替える方法

分類Dev

Java seleniumでPageObjectsと@FindByを使用してjavascript要素を実行する方法

分類Dev

SeleniumとWebdriverを使用して実行速度を上げる方法

分類Dev

Selenium WebDriverとJavaを使用して要素からテキストを取得する方法

分類Dev

Selenium WebDriver(Java)を使用して画像/リンクをクリックする方法

分類Dev

別のコンピューターでSeleniumのWebDriverを使用してJavaプログラムを実行する

分類Dev

別のコンピューターでSeleniumのWebDriverを使用してJavaプログラムを実行する

分類Dev

PhantomJSとSeleniumを使用してページを閲覧する方法

分類Dev

JavaでRabbitMQを使用してRPCメカニズムを実装する方法

分類Dev

JavaでSelenium WebDriverを使用して要素が存在しないことを確認する最良の方法

分類Dev

JavaでSelenium WebDriverを使用して選択したオプションを取得する方法

分類Dev

Typescriptを使用して、Angular 2でSignIn with Googleを実装する方法

分類Dev

Typescriptを使用して、Angular 2でSignIn with Googleを実装する方法

分類Dev

Typescriptを使用して、Angular 2でSignIn with Googleを実装する方法

Related 関連記事

  1. 1

    appcacheは、phantomjsを使用するSelenium Webdriver(JS実装)ではサポートされていませんか?

  2. 2

    Javaを使用してSelenium WebDriverでiframeを処理する方法

  3. 3

    JavaでSelenium Webdriverを使用してタグ値を取得する方法

  4. 4

    C# を使用して Selenium.Webdriver + PhantomJS で実行時にプロキシを変更する

  5. 5

    Javaを使用してSelenium WebDriverでマウスオーバー機能を実行する方法は?

  6. 6

    JavaでSelenium WebDriverを使用してブラウザ名を取得する方法は?

  7. 7

    Javaを使用してSelenium WebDriverでポップアップを処理する方法

  8. 8

    Selenium WebDriver、Javaを使用してテキストでWeb要素を選択する方法

  9. 9

    C#でSelenium WebDriverを使用してJavaScriptを実行する

  10. 10

    JavaScriptをSelenium WebDriver Javaで使用する方法

  11. 11

    JavaでSelenium WebDriverを使用して下にスクロールする方法

  12. 12

    Selenium WebDriverでxPathを使用してSVG要素を取得する方法は?

  13. 13

    JavaでSelenium WebDriverを使用してタブを切り替える

  14. 14

    JavaでSelenium WebDriverを使用してWebElementが存在しないことを表明する

  15. 15

    JavaでSelenium WebDriver(Selenium 2)を使用してテキストボックスに入力する方法

  16. 16

    Javaを使用してSelenium WebDriverでフレームを切り替える方法

  17. 17

    Java seleniumでPageObjectsと@FindByを使用してjavascript要素を実行する方法

  18. 18

    SeleniumとWebdriverを使用して実行速度を上げる方法

  19. 19

    Selenium WebDriverとJavaを使用して要素からテキストを取得する方法

  20. 20

    Selenium WebDriver(Java)を使用して画像/リンクをクリックする方法

  21. 21

    別のコンピューターでSeleniumのWebDriverを使用してJavaプログラムを実行する

  22. 22

    別のコンピューターでSeleniumのWebDriverを使用してJavaプログラムを実行する

  23. 23

    PhantomJSとSeleniumを使用してページを閲覧する方法

  24. 24

    JavaでRabbitMQを使用してRPCメカニズムを実装する方法

  25. 25

    JavaでSelenium WebDriverを使用して要素が存在しないことを確認する最良の方法

  26. 26

    JavaでSelenium WebDriverを使用して選択したオプションを取得する方法

  27. 27

    Typescriptを使用して、Angular 2でSignIn with Googleを実装する方法

  28. 28

    Typescriptを使用して、Angular 2でSignIn with Googleを実装する方法

  29. 29

    Typescriptを使用して、Angular 2でSignIn with Googleを実装する方法

ホットタグ

アーカイブ