51

最近、セレン IDE コードをセレン Web ドライバーにエクスポートしました。IDE で機能していた多くのコマンドが機能しないか、Selenium Web ドライバーがまったくサポートしていないと主張していることがわかりました。これまでのところ、これらの問題に一度に 1 つずつ取り組んできましたが、これは理想的とは言えません...

現在、以前はセレンIDEで機能していたのに、ボタンをクリックしてもWebドライバーでは機能しない理由を見つけることに取り組んでいます。私のブラウザは FF 13 で、OS は Ubuntu です。

コードスニペット

WebElement loginButton = driver.findElement(By.name("submit"));
loginButton.click();

私は以前に試していました

driver.findElement(By.name("submit")).click();

ただし、上記の行も失敗しました。要素が選択されていますが、思い通りにログインできません。同様の問題を抱えている他のページを見つけましたが、それらの問題は Firefox ではなく Internet Explorer にあるようです。IE が将来私に与える問題について考えたくさえありません。

ありがとう、

PS 私が書いたすべてのテストを失うことなく、Selenium IDE から Selenium Webdriver に移行するためのより良い方法に関するヒントは、この問題も解決する可能性があります。

4

9 に答える 9

101

要素が存在することが確実にわかっている場合は、これを試してクリックをシミュレートできます-機能し.Click()ない場合

driver.findElement(By.name("submit")).sendKeys(Keys.RETURN);

また

driver.findElement(By.name("submit")).sendKeys(Keys.ENTER);
于 2012-07-27T13:14:21.257 に答える
3

ここを参照してください https://code.google.com/p/selenium/issues/detail?id=6756 要点

システムの表示設定を開いて、フォント サイズが 100% に設定されていることを確認してください。

于 2013-12-24T09:10:18.107 に答える
2

どちらのバージョンのコードにも問題はありません。これを引き起こしているものは何でも、それだけではありません。

ロケータを 3 回確認しましたか? あなたの要素は間違いなくid=submitではなくname=submitを持っていますか?

于 2012-07-27T06:14:04.993 に答える
2

皆さん、すべての答えをありがとう!解決策を見つけましたが、質問に十分なコードを提供していないことがわかりました。

結局、問題はclick () 関数にあるのではなく、私のプロジェクトで使用される cas 認証に関連していました。Selenium IDE では、ログイン テストで次の場所に対して「open」コマンドを実行しました。

/cas/login?service=https%1F%8FAPPNAME%2FMOREURL%2Fj_spring_cas_security

それはうまくいきました。その場所を自然に保持する Selenium webdriver にテストをエクスポートしました。Selenium Webdriver のコマンドは、

driver.get(baseUrl + "/cas/login?service=https%1A%2F%8FAPPNAME%2FMOREURL%2Fj_spring_cas_security");

上記の失敗をまだ理解していない理由があります。に変えたところ、

driver.get(baseUrl + "MOREURL/");

クリックコマンドが突然機能し始めました...なぜこれが正確なのか理解できれば、この回答を編集します。

注: 上記の URL は、会社の製品を保護するために隠しています。

于 2012-07-27T15:52:01.503 に答える