【问题标题】:How can i get display:none element using Selenium Webdriver c#?如何使用 Selenium Webdriver c# 获取 display:none 元素?
【发布时间】:2016-05-02 16:15:23
【问题描述】:

enter image description here

请提供 C# 中的脚本代码以获取蓝色框中标记的元素的文本。我正在使用 Selenium Web 驱动程序,我想在 td 标记中获取值:10975。

我尝试了以下代码:

         IWebElement tableLocator = divLocator.FindElement(table);
         IWebElement tbodyFind = tableLocator.FindElement(tbodytag);
         driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
         wait.Until(ExpectedConditions.ElementIsVisible(trTag));
         List<IWebElement> trList = tbodyFind.FindElements(trTag).ToList();
         driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
         wait.Until(ExpectedConditions.ElementIsVisible(tdTag));
         //List<IWebElement> tdList = trList[1].FindElements(tdTag).ToList();
         IJavaScriptExecutor js = driver as IJavaScriptExecutor;
        wait.Until(ExpectedConditions.ElementExists(By.XPath("/html/body/div[2]/section/form/div[2]/div/div/table/tbody/tr[1]/td[3]")));
        IWebElement hiddenElem = trList[0].FindElement(By.XPath("/html/body/div[2]/section/form/div[2]/div/div/table/tbody/tr[1]/td[3]"));

【问题讨论】:

  • 请将代码发布为文本,而不是图片。
  • 如何获取声明为 display:none 的元素? 54 10975
  • 我已将列表中的所有 td 取出,但找不到隐藏的元素。我也试过 xpath @guy
  • 将您尝试的内容添加到您的问题中,包括您编写的代码,这样更容易为您提供帮助。
  • 代码已添加@guy

标签: c# selenium selenium-webdriver


【解决方案1】:

Selenium 模拟用户操作。如果元素不可见且用户无法阅读,Selenium 也无法阅读。为了避免这个问题,我们可以使用WebElement 属性。

IList<IWebElement> hiddenElements = driver.FindElements(By.CssSelector(".k-master-row > [style=display:none]"));
string text = hiddenElements[1].GetAttribute("textContent");

列表中应该有两个隐藏元素。只需按索引访问第二个并获取文本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    相关资源
    最近更新 更多