我循环遍历Web元素列表,试图逐个点击每个元素。即使在调试模式下,我可以清楚地看到所需元素已作为参数传递给方法,但程序会不断单击列表中的第一个元素。
private void CompleteForm(IWebElement element)
{
if (element == null) throw new ArgumentNullException(nameof(element));
//Open the form and wait for it to load
Wait.Until(
ExpectedConditions.ElementToBeClickable(
element.FindElement(By.XPath("//td/a[contains(@href, '/Shop')]")))).Click();
Wait.Until(ExpectedConditions.ElementToBeClickable(By.Id("SaveShop")));
//Store the original values
GetTheValues();
//Submit the save button
Wait.Until(ExpectedConditions.ElementToBeClickable(By.Id("SaveShop"))).Click();
Browser.Navigate().Back();
}
答案 0 :(得分:2)
我不确定你要做什么。但是当你致电element.FindElement(By.XPath("//td/a[contains(@href, '/Shop')]"))
时,我假设你想在element
的后代中进行相对搜索!?
如果是这样,您需要在.
之前指定//
,否则您将搜索整个文档。
固定代码:
Wait.Until(
ExpectedConditions.ElementToBeClickable(
element.FindElement(By.XPath(".//td/a[contains(@href, '/Shop')]")))).Click();