我需要一些帮助。我正在尝试编写一个webdriver C#代码来检查站点中的元素。但是,该网站是一个嵌入表单的单页网站,单击“下一步”后其内容会发生变化吗?
所以基本上当我单击Next时会出现新表单,我想进行验证以查看新表单中是否出现新元素。目前,我正在进行验证
private By labelPageHeader = By.XPath("//form[1]/div[4]/label[text()='Welcome to the second form']");
public bool IsNewForm()
{
return Elements.CheckElementIsVisible(_driver, labelPageHeader );
}
当我这样做时,我得到错误:
无法在指定的超时期限内加载页面
当我不在单页网站工作时,这通常有效。
这是HTML。我试图在表单
中找到id =“alligator”<form name="form1" method="post" action="./report-fraud-form.aspx?AspxAutoDetectCookieSupport=1" onsubmit="javascript:return WebForm_OnSubmit();" id="form1">
<div id="Step3" class="step">
<div id="alligator" class="input">
<label for="alligator">Welcome to the second form
<abbr title="This field is required">*</abbr></label>
</div>
<input type="hidden" class="link" value="Step4" />
</div>
<!-- step3 ends -->
感谢您的帮助
答案 0 :(得分:0)
你的XPath看起来很糟糕。由于提供了“id”属性,因此最佳做法是使用这些属性。鉴于HTML片段,该路径对我有用:
//form[@id='form1']//div[@id='alligator']/label
如果您真的在表单中寻找输入:
//form[@id='form1']//div[@id='alligator']/following-sibling::input