<div id="crm" class="row gridrow clickable ng-scope" ng-repeat="customer in customerList" ng-click="gotoRecord(customer.id)">
<i class="col m1 s1 tiny fa fa-male"></i>
<div class="col m3 s11 ng-binding"> Allard</div>
<div class="col m2 s12 ng-binding"></div>
</div>
我有这个 HTML 片段,它是作为对名为“Allard”的客户的搜索操作的结果显示的一行。我想单击此客户以继续到下一页,但大多数情况下这会导致 StaleElementException。
我尝试了两种不同的方式,使用量角器和不使用量角器。
第一种方式:
IWebElement elem = driver.FindElement(By.XPath("//*[contains(text(),'" + nameCustomer + "')]//parent::div[contains(@id,'crm')]"));
ExplicitWait.WaitAndClick(driver, elem);
第二种方式:
var customers = driver.FindElements(NgBy.Repeater("customer in customerList"));
foreach (var customer in customers)
{
if (elem.Text.Equals(nameCustomer))
{
elem.Click();
}
}