C#学习教程:在selenium/webdriverc#中循环遍历多个moveToElements第一次迭代有效,但之后停止。我试过添加Thread.Sleep(xxxx);但这也不管用。这是我的方法:publicstaticboolTestFindAssets(){boolresult=false;动作动作=新动作(驱动程序);varfindAssetsClick=driver.FindElement(By.XPath("/html/body/div/header/nav/ul/li[3]/a"));varhome=driver.FindElement(By.LinkText("Home"));try{for(inti=1;i<13;i++){action.MoveToElement(findAssetsClick).Perform();//查找资产链接action.MoveToElement(driver.FindElement(By.XPath("xpath"))).Perform();//按类型链接action.MoveToElement(driver.FindElement(By.XPath("otherPath"+i))).Click().Build().Perform();//链接列表}result=true;}catch(Exceptionex){Console.WriteLine("发生错误:",ex);结果=假;}返回结果;同样,这适用于一次迭代。任何帮助表示赞赏。您应该使用FindElements找到目标元素,而不是硬编码索引号,然后循环并来回单击。其次,您需要使用适当的等待时间来确保元素正确加载。第三,需要动态查找元素,不能简单的遍历集合,来回点击。它将刷新DOM并抛出StaleElement引用异常。这是一个尝试做与上面相同的事情的示例测试是C#学习教程:LoopingthroughmultiplemoveToElementinselenium/webdriverc#Allshared如果它对任何人都有用并且需要进一步了解C#学习教程,我希望你付出更多注意—publicvoidClickThroughLinks(){Driver.Navigate().GoToUrl("http://www.cnn.com/");//最大化窗口,这样就可以成功收集列表了。驱动.Manage().Window.Maximize();//查找列表ByxPath=By.XPath("//h2[.='TheLatest']/../li//a");IReadOnlyCollectionlinkCollection=Driver.FindElements(xPath);for(inti=0;i本文收集自网络,不代表立场,如涉及侵权,请点右联系管理员删除,转载请注明出处:
