挿入を自動化する必要があります。私のビューには、異なるフィールドを持つ 3 つのタブがあります。各タブのフィールドに入力することでテストが実行され、最初のタブに戻ってフォームが送信されます。webdriver が 3 番目のフィールドに入力し、最初のフィールドに戻ってデータを送信できるようにすると、一部のフィールドが空白になります。これらの分野のいくつかで、私はこれを使用しました:
if(!isElementPresent(driver,By.xpath("//div[@id='tabView:frmGrid:depto']/div[2]/span"))){
waitForElement(By.xpath("//div[@id='tabView:frmGrid:depto']/div[2]/span"));
}
これらのメソッドは次のとおりです。
private boolean isElementPresent(WebDriver driver,By by){
driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
try {
driver.findElement(by);
return true;
}
catch(Exception e)
{
return false;
}
finally
{
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
} }
public WebElement waitForElement(By by) {
WebElement result = null;
long maxTime = 6 * 1000;
long timeSlice = 250;
long elapsedTime = 0;
do {
try{
Thread.sleep(timeSlice);
elapsedTime += timeSlice;
result = driver.findElement(by);
} catch(Exception e) {
}
} while(result == null && elapsedTime < maxTime);
return result;
}
Primefaces コンポーネントが存在するフィールドでも、テキストが「入力」されており、タブに戻ると...空白です..!しかし、不思議なことに、それらのすべてではありません。しかし、いつも同じもの。テキスト フィールドとドロップダウン リスト。同様の問題は見たことがありません。誰かが理由を知っていますか?
ありがとう!