2

SAP-webUI (Web ベース) アプリケーションの UI テスト ケースを作成しようとしています。ログイン後、ダッシュボード(ワークセンターの)画面を表示します。

問題は、ページを開き、U/N、Pwd を入力して、Selenium 経由でログインできることです。「ログイン」ボタンを押すと、URLが変更され、ページがリダイレクト/更新されました。

例: ログイン前の URL: https://a/b/c/d/e/f/g.htm?sap-client=001&sap-sessioncmd=open

たとえば、ログイン成功後の URL : https://a/b(bDsdfsdsf1lg==)/c/d/e/f/g.htm

この後、アクションを実行したり、ページのどの部分のリンクを押したりすることもできません。可能なすべての属性(css、xpath、id)を試しました。Webdriver は、ページ上で要素を見つけることができませんでした。「要素が見つかりません」というエラーだけが表示されます。

Selenium Web Driver で Java を使用しています。

以下のウェブページのhtml構造を見つけてください

<html><body><div><div><iframe>#document<html><head></head><frameset><frameset><frame>#document<html><head></head><body><form><div><div><table><tbody><tr><td><div><ul><li><a id=abcdef></a></li></ul></div></td></tr></tbody></table></div></div></form></body></html></frame></frameset></frameset></html></iframe></div></div></body></html>

実際には、以下のHTMLコードに示すように、iframeとframeの内側にあるlinkmenu「abcd」をクリックしたい

<html><head></head><body><iframe name=a1><html><head></head><frameset><frameset name=fs1><frame name=f1><html><head></head><body><table><tbody><tr><td><ul><li><a id=abcdef>

以下のコードも試しました。

driver.switchTo().frame("a1"); driver.findElement(By.id("abcd")).click();

また

driver.findElement(By.xpath("//*[@id='abcd']")).click();

上記のコードを使用した後でも、「そのような要素はありません」というエラーが表示されます

よろしくお願いします

よろしく、シヴァ

4

3 に答える 3

3

こうやって…

driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@name='a1']"))); // iframe に切り替える

に続く

driver.switchTo().frame("f1"); // フレームに切り替える

そして、あなたの望む行動...

driver.findElement(By.id("abcd")).click();

于 2015-03-26T10:19:41.337 に答える
2

これiframe. 最初に切り替える必要があります:

driver.switchTo().frame(0);
driver.findElement(By.id("abcdef")).click();

0フレーム インデックスです。

于 2015-03-25T13:20:34.740 に答える
1

ここで暗黙の待機に関するドキュメントを参照してください

選択した要素が利用可能になるまで暗黙の待機を行う必要があると思います

選択した要素に合わせてこれらのコードを変更します。

WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("someid")));
于 2018-03-27T04:36:45.637 に答える