.net 硒点击

.net 硒点击,.net,angularjs,selenium,.net,Angularjs,Selenium,我有一个ng repeat中的项目列表。我需要使用Selenium单击列表中的给定项 var items = driver.FindElements(By.XPath("//*[@ng-repeat='filter in date_filters']")); items[1].Click(); items返回时会显示所有项的列表,但items[1]。单击会引发错误 如果您能给我一些建议,我将不胜感激 谢谢, 乔治试试这个。您需要使用数组来收集项目列表 List&

我有一个ng repeat中的项目列表。我需要使用Selenium单击列表中的给定项

        var items = driver.FindElements(By.XPath("//*[@ng-repeat='filter in date_filters']"));
        items[1].Click();
items返回时会显示所有项的列表,但items[1]。单击会引发错误

如果您能给我一些建议,我将不胜感激

谢谢,
乔治试试这个。您需要使用数组来收集项目列表

List<WebElement> li = driver.findElements(By.XPath("//*[@ng-repeat='filter in date_filters']"))

li.get(1).click();

//If you want to click the second element then get(1)

通常。在webelement上单击操作有效。如果没有,请使用java脚本执行器

备选案文1:

List<WebElement> elements = driver.findElements(By.xpath("//*[@ng-repeat='filter in date_filters']"));
elements.get(1).click();
备选案文2:

List<WebElement> elements = driver.findElements(By.xpath("//*[@ng-repeat='filter in date_filters']"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", elements.get(1));
谢谢prithvi394

你让我走上了正确的轨道

我的解决办法是

        IJavaScriptExecutor js = driver as IJavaScriptExecutor;
        js.ExecuteScript("window.scrollBy(0,500)");

        var action = new Actions(driver);
        var mySlot = driver.FindElement(By.XPath("//div[@ng-repeat='filter in date_filters' and contains(., '29 Dec')]"));
        action.MoveToElement(mySlot).Click().Perform();
奇怪的是,我不得不将网络浏览器滚动到我想点击的按钮可见的位置


谢谢

它会抛出什么错误?