无法使用 ID、XPath 和 CSS 选择器定位元素



我正在使用带有C#的atata框架。我正在尝试找到 Web 元素以选择所有行,但 Id、CSS 路径或 XPath 都无法找到。

我使用了ID,XPath和CSS选择器

[FindById("com.kronos.wfc.ngui.genies.selectall")]
public Button<_> SelectAllRows { get; private set; }
[FindByXPath("div[@id=com.kronos.wfc.ngui.genies.selectall]")]
public Button<_> SelectAllRows { get; private set; }

应该找到我的页面对象。路径的详细信息如下:

元素:

<div class="widget-button btn-group margin-mini shrinkable" title="Select All Rows" 
id="com.kronos.wfc.ngui.genies.selectall" style="display: inline-block;">
<div class="top-bar"><span></span></div>
<button type="button" class="btn btn-rounded widget-button-icon" id="com.kronos.wfc.ngui.genies.selectall_btn">
<i class="icon-k-select-all"></i></button><div class="icon-label"><span>Select All Rows</span></div></div>

选择器: #com.kronos.wfc.ngui.genies.selectall

XPath://*[@id="com.kronos.wfc.ngui.genies.selectall"]

  1. 对于第一个<div>元素:

    <div class="widget-button btn-group margin-mini shrinkable" title="Select All Rows" 
    id="com.kronos.wfc.ngui.genies.selectall" style="display: inline-block;">
    

    因为它是一个div,而不是一个button元素,那么使用一般的木偶Control类型:

    [FindById("com.kronos.wfc.ngui.genies.selectall")]
    public Control<_> SelectAllRows { get; private set; }
    
  2. 对于第二个<button>元素:

    <button type="button" class="btn btn-rounded widget-button-icon" id="com.kronos.wfc.ngui.genies.selectall_btn">
    

    如果元素实际可见,则以下内容应找到该元素:

    [FindById("com.kronos.wfc.ngui.genies.selectall_btn")]
    public Button<_> SelectAllRows { get; private set; }
    

    如果元素不可见:

    [FindById("com.kronos.wfc.ngui.genies.selectall_btn", Visibility = Visibility.Any)]
    public Button<_> SelectAllRows { get; private set; }
    

无论如何,找出哪个元素实际上是可见的,应该与之交互。

我认为您应该对button元素而不是div元素执行单击操作。尝试以下代码:

[FindById("com.kronos.wfc.ngui.genies.selectall_btn")]
public Button<_> SelectAllRows { get; private set; }

最新更新