【问题标题】:How can I find all elements and put them in a list using Selenium?如何使用 Selenium 找到所有元素并将它们放入列表中?
【发布时间】:2017-11-21 18:11:49
【问题描述】:

我有许多单元测试。我想在我的屏幕上找到所有元素并将它们放入一个列表中。我已经尝试过类似下面的示例。但是,我不想通过它们的名称找到许多元素;我只想把它们都找出来。

是否可以使用 Selenium 来做到这一点?

IList<WindowsElement> elements = driver.FindElementsByAccessibilityId(element);
Debug.WriteLine(elements);
Thread.Sleep(200);
if (elements.Count > 0)
{

}

【问题讨论】:

  • 这是 Windows 窗体,WFP 吗?你试过form.Controls吗?
  • @Andrew 这是一个单元测试项目
  • 屏幕上显示的是什么对象,包含您的元素的对象?
  • @Andrew 这只是我传递的一个字符串,但我不想这样做,因为我不想搜索某个元素我想将它们全部添加到列表中我想通过它们做一个foreach,如果列表中的一个元素在它的元素名称中包含“PowerPoint 遇到问题”,那么做一些事情
  • 您是否偶然尝试找到当前在您的操作系统中运行的所有窗口,而不是您所显示表单的控件?

标签: c# unit-testing selenium appium


【解决方案1】:

我认为您在 cmets 中没有回答我的任何问题,所以我不确定是否可以帮助您。无论如何,我将向您展示如何在 Winforms 中查找控件。如果是其他问题,您必须回答我的问题并告诉我们。

// Winforms. If this goes in another class, use the form variable instead of "this".
foreach (Control ctrl in this.Controls)
{
    if (ctrl.Name == "PowerPoint is running into problems")
    { 
        // Do your thing
    }
}

【讨论】:

    猜你喜欢
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多