2017-07-18 13 views
-1

serenity jbehaveを使用してスクリプトを実行しています。私は続行ボタンをクリックする必要があります。ここで私は動的xpathでそれを識別しています。しかし、それはここでボタンクリックがselenium webdriverで機能しない

に応答していないウェブ要素

<input type= "button" class="bin-large" onclick="continueperson(document.getElementById('controlTodisplay').value);" value="continue">==$0

である私は

Xpath=//input[@value='continue'] 

以下のようにそれを識別し、クリック操作を行っています。

誰でも助けてくれますか?

+0

エラーが表示されますか?それとも、うまくいきませんか?値が 'continue'の他の入力があるかどうか確認してください –

+0

それが機能しない場合は、ボタンを囲む余白があるかもしれません。 WebDriverは要素の左上をクリックします。したがって、ボタンの外側を囲む余白がある場合、ドライバは実際のボタンの代わりにそこをクリックしている可能性があります。 – stewartm

答えて

1

実際、ほとんどの場合、ボタンをクリックできないという問題は、コードのスペルが間違っていることに関連しておらず、ページが完全に読み込まれていない場合は、 driver.findElement(By.xpath("//input[@value='continue']"));

Bモード: WebDriverWait wait =new WebDriverWait (driver,10); wait.until(expectedconditions.elementtobeclickable(By.xpath("//input[@value='continue']")); driver.findElement(By.xpath("//input[@value='continue']"))

+0

はい私は試しましたが、最終的にその環境の問題私たちのコードはあなたの助けを借りて多くの正解です – Siva

1

は、これらのいずれかが、下のボタンをクリックしてコードを述べてみ間違いは、 "B"

モードを実行します。

ボタンをクリックする前に、waitの数秒を入力して、ドライバがWeb要素を見つけることができるようにします。

私はexplicit waitメソッドを使用しています。

WebDriverWait wait = new WebDriverWait(driver, 5); // wait for 5 seconds 
wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.xpath("//input[@value='continue'][@type='button']")))); 
driver.findElement(By.xpath("//input[@value='continue'][@type='button']")).click(); 

OR

java-script executor方法を使用してボタンをクリックしてください。

WebElement button = driver.findElement(By.xpath("//input[@value='continue'][@type='button']")); 
((JavascriptExecutor) driver).executeScript("arguments[0].click();", button); 
+0

このコードを試してみましたか? –

+0

あなたのために働く場合は、この回答に「受け入れられる」とマークしてください。 –

関連する問題