【问题标题】:How to locate Menu item inside a div and span with Selenium C#如何使用 Selenium C# 在 div 中定位菜单项和跨度
【发布时间】:2020-12-24 03:49:41
【问题描述】:

找不到Actions下拉菜单项。

Inspector 截图:

// driver.FindElement(By.CssSelector(".actionButtonRoot")).Click();
// driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
// driver.FindElement(By.ClassName("new")).Click();
//driver.FindElement(By.XPath("//span[@ng_string='SDE_ACTIONS']")).Click();
//driver.FindElement(By.XPath("//*[contains(text(),'ACTIONS')]")).Click();
//driver.FindElement(By.XPath("//span[@class='text']")).Click();
//driver.FindElement(By.XPath("//div[@class='actionList']")).Click();
//driver.FindElement(By.XPath("//div[@class='actionButtonRoot']")).Click();
//WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
//wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("(/html/body/div/xrx-grid-advance/xrx-grid-actions/ng-form/div[1]/div[1]"))).Click();
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
var element = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//div[@ClassName='actionButtonRoot']::div")));
//Actions action = new Actions(driver);
//action.MoveToElement(element).Perform();
driver.FindElement(By.XPath("//li//span[text()='SDE_ACTIONS']")).Click();
Thread.Sleep(1000);
SelectElement oSelect = new SelectElement(driver.FindElement(By.XPath("//div[@ClassName='actionButtonRoot']")));
oSelect.SelectByIndex(1);
Console.Write("End Test");

【问题讨论】:

    标签: c# selenium xpath css-selectors webdriverwait


    【解决方案1】:

    所需的元素是Angular 元素,因此对于Click(),您必须为ElementToBeClickable() 诱导WebDriverWait 元素,您可以使用以下Locator Strategies 之一:

    • CssSelector:

      new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("div.actionButtonRoot >span.text[ng-string='SDE-ACTIONS']"))).Click();
      
    • XPath:

      new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//div[@class='actionButtonRoot']/span[@class='text' and text()='Actions']"))).Click();
      

    【讨论】:

      猜你喜欢
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-18
      • 1970-01-01
      • 2019-10-29
      • 1970-01-01
      • 2019-12-14
      相关资源
      最近更新 更多