如何使用selenium(C#)在网格中自动选择控件(点击并按住)

本文关键字:控件 选择 selenium 何使用 网格 | 更新日期: 2023-09-27 17:59:58

我的代码是:

[TestMethod]
    public void ActionClickAndHold()
    {
        driver = new ChromeDriver();
        driver.Manage().Window.Maximize();
        driver.Navigate().GoToUrl("http://jqueryui.com/selectable/");
        driver.FindElement(By.Id("selectable")).Click();
        System.Threading.Thread.Sleep(10000);
        driver.SwitchTo().Frame(0);
        ReadOnlyCollection<IWebElement> lstItems = driver.FindElements(By.XPath("//*[@id='selectable']/li[1]"));
        Actions builder = new Actions(driver);
        builder.ClickAndHold(lstItems[1])
                .ClickAndHold(lstItems[3])
                .Click()
                .Perform();
        driver.SwitchTo().DefaultContent();
    }

它不起作用。它不会在网格中单击并保持不变。我从哪里知道我的错误?

如何使用selenium(C#)在网格中自动选择控件(点击并按住)

实际上你要去错误的元素,尝试如下:-

driver = new ChromeDriver();
driver.Manage().Window.Maximize();
driver.Navigate().GoToUrl("http://jqueryui.com/selectable/");
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(3))
wait.Until(ExpectedConditions.FrameToBeAvailableAndSwitchToIt(By.ClassName("demo-frame")));
ReadOnlyCollection<IWebElement> lstItems = wait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(By.CssSelector("#selectable li")));
builder.ClickAndHold(lstItems[1])
                .ClickAndHold(lstItems[3])
                .Click()
                .Perform();
driver.SwitchTo().DefaultContent();

希望能有所帮助…:)