전달 된 인덱스를 기반으로하는 목록에서 IWebElement를 가져 오는 함수가 있습니다. 내가 통해 디버깅 할 때함수가 범위를 벗어난 인덱스를 계속 throw합니다.
다음public void DeleteDraft(int index = 0) {
if(ExistingDrafts.Count > 0) {
ExistingDrafts[index].Click();
}
IWebElement discardButton = Driver.FindElement(By.XPath("/html/body/div[2]/div/div[1]/div[2]/div/div[2]/form/div[7]")).FindElements(By.ClassName("form-control"))[0];
Wait.Until(w => discardButton != null);
discardButton.Click();
}
그것이 내 테스트 -
[Fact]
public void DeleteTheDraft() {
BroadcastPage.DraftsHyperLink.Click();
//delete first draft
string firstDraftSubj = BroadcastPage.ExistingDrafts[0].Text;
System.Threading.Thread.Sleep(6000);
BroadcastPage.DeleteDraft(0);
string newfirstDraftSubj = BroadcastPage.GetNewestDraftSubject();
BroadcastPage.Wait.Until(w => newfirstDraftSubj != null);
Assert.True(firstDraftSubj != newfirstDraftSubj, "Draft was not deleted");
}
에서 어떻게 사용되고있는 기능 - 여기
public IList<IWebElement> ExistingDrafts { get { return Driver.FindElements(By.ClassName("broadcast-list-item")); } }
있다 - 여기
는 속성입니다 내 검사, 통과한다. 그러나 테스트를 실행하면 예외가 throw됩니다. 나는 무슨 일이 일어나고 있는지 잘 모르겠습니다.
당신은'ExistingDrafts' 요소를 가지고 있는지 확인하지만 즉 * 충분히 * 요소가 있습니다. – DavidG
discardButton.Click(); 해야 할 것? – EJoshuaS
@DavidG 내 if 조건을 언급하고 있습니까? 내 목록에 데이터를 가져 오는 데 걸리는 시간의 문제라고 생각했습니다. –