セレン:javascriptのボタンをクリックする方法

ルーカス:

自動テストは負荷時の技術AMFフレックス/で構築されたWebアプリケーションをチェックするために、私はいくつかのスクリプトを記述する必要があります。テストは、IEブラウザを開いて、いくつかのタブを通過すると、ページのコンテンツをロードするために、最後のタブをクリックして、ブラウザを閉じてからの時間を計測して構成されます。

私はJavaでSeleniumのウェブドライバとJUnitを用いた小さなスクリプトを書きました。IEウィンドウを開くスクリプトは、ログイン名とパスワードを入力します。私は、ログインボタン「をクリックし」との問題を抱えています。

まず、私が見つけ、findingElementとBy.partiallinktextでボタンをクリックしてください持っているが、セレンは私を知らせ:「部分リンクテキストを持つ要素を見つけることができません」(Ctrl + Fキーは、そのサイト上の罰金​​を動作します)。

( - 「タブ」とパスワードを使用して、塗りつぶしの文字列の後に「入力」をクラスロボット)私はmoveByOffsetマウスを使ってクリックし、ボタンを押してみました。それらのすべてが動作しません。

次はJavascriptExecutorを見つけた - 私の事、それは私の問題のための答えかもしれないが、どのように私は、このクラスを使用する必要があること?

そのサイト上のボタン:

<button style="width: 120px;" onclick="javascript:logIn();"> Login </button>

私のJavaコード:

WebElement button = driver.findElement(By.partialLinkText("Login")); 
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript ("document.getElementByText(\"Login\")).click();", button); 

私はテストで多くの経験を持っていないので、私はあなたの助けのために感謝するでしょう。

ステファン:

JavaScriptを通過しないでください。これを試して:

String xPath = "//button[contains(.,'Login')]";
driver.findElement(By.xpath(xPath))).click();

いっそのことではなく、テストしました:

// xPath to find a button whose text() (ie title) contains the word Login
String xPath = "//button[contains(text(),'Login')]";
driver.findElement(By.xpath(xPath))).click();

またので、予めご了承くださいhttps://sqa.stackexchange.com/は、セレン(など)の情報を持っています

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=200203&siteId=1