2017-07-13 11 views
0

webdriverを、私はその上にセレンタスクを実行しようとしている:this pageセレンを使用してリンクをクリックし、

は、私はそれをクリックした後、10秒間待つ必要がボタンがあります。ページに Naviagation:私はこのようにそれをやったボタンの

base.driver.navigate().to("http://suvian.in/selenium/1.7button.html"); 

クリック:

TimeUnit.SECONDS.sleep(waitTime); 

//base.driver.findElement(By.xpath("/html/body/div[1]/div/div/div/div/h3[2]/a")); 
     base.driver.findElement(By.linkText("Click Me")); 

このステップでは、10秒間

待ちに失敗しましたクエストns

1 - ボタンをクリックすると失敗します。しかし、私はxpathと、textとの両方のリンクを見つけるよう求めましたが、それを見つけることができませんでしたか?

2私の解決策は、Webdriverの動作を遅らせるために正しいですか?

+0

どういう意味ですか? –

答えて

1
  1. 私の地元で試してみました、「私をクリックして」ボタンをクリックするためのコードの下には試してみてください:上記のコードのための driver.findElement(By.xpath("//div[contains(@class,'intro-message')]")).findElement(By.partialLinkText("Click Me")).click();

    説明:親指のルールは、DOMの親要素から移動しようです。上記の投稿では、ボタンの親要素はdiv class = intro-messageです。親要素が見つかると、次に子要素を見つけます。あなたの場合は、リンクテキスト 'Click Me'のボタンでした。

//base.driver.findElement(By.xpath("/html/body/div[1]/div/div/div/div/h3[2]/a ")); base.driver.findElement(By.linkText( "Click Me"));

また、書いた方法が正しくありません。間に新しいdivや新しいボタンのような要素が追加された場合、これは失敗します。これを避けてください。

  1. 現在のシナリオでは、あなたのウェイティングの方法は正しいです。しかし、他のユースケースでは、アプリケーションを明示的に待たせるのは間違いかもしれません。
+0

urソリューションが動作しません。 –

+0

私のローカルのdriver.findElement(By.xpath( "// div [(クラス、 'イントロメッセージ')])))))。findElement(By.partialLinkText(" Click me "))をクリックします。それは働いた。どのブラウザを使用していますか? –

+0

が解決されました。私は 'click()'を見逃しています。 –

関連する問題