0
以下のコードでは、url
とtag
を渡しています。コードを実行しているがデバッグモードで渡しているときに常にweb要素を見つけることができない
tag
は、ページ内のdiv /セクションを識別するために使用されます。セクションの下にあるurl
をすべて取得しようとしていて、渡されたurl
と比較して一致するようにしています。私はデバッグモードでこのコードを実行すると
はここでの問題は、私は、URLのリストを取得し、リスト内の一致url
を見つけることができる午前私はassert
文は常にurl
を言って失敗の下のコードを実行したときには見られない、ありますリスト。 Web要素waitやその他のメソッドを導入することでこれを解決するために最善の努力をしました。sleep
メソッド。何も働いていないようです。これを解決するために私を助けてもらえますか?
コード:
public void validateEndpoints(String url, String tag){
tag = tag.trim();
if(tag.contains("/"))
tag = tag.replace("/", "_");
WebElement resourceLink = driver.findElement(By.cssSelector("#resource_"+tag+"_"+" .heading a"));
WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.elementToBeClickable(resourceLink));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", resourceLink);
By mySelector = By.cssSelector("#"+tag+"__endpoint_list .path a");
WebDriverWait wait2 = new WebDriverWait(driver, 30);
wait2.until(ExpectedConditions.elementToBeClickable(mySelector));
List<WebElement> urlList = driver.findElements(mySelector);
List<String> resourceName = new ArrayList<String>();
for (WebElement e : urlList){
resourceName.add(e.getText());
}
executor.executeScript("arguments[0].click();", resourceLink);
Assert.assertTrue(resourceName.contains(url), "End point "+ url +" not found in the resource " + tag + "...");
}
は、この質問を投稿する前にこのことを試みたが、運がありませんでした! –