Selenium Webdriver语言 - 输入js/html元素标识



无法识别输入元素

例如有两个像这样的字段…

<div class="col-xs-10">
  <h4>
    <a href="#" data-type="text" id="firstName" class="editable editable-click">
      Alejandroff
    </a>
  </h4>
  <h4>
    <a href="#" data-type="text" id="lastName" class="editable editable-click">
      Puchauff
    </a>
  </h4>
</div>

…这之后点击eg。

<div class="col-xs-10">
  <h4>
    <a href="#" data-type="text" id="firstName" class="editable editable-click editable-open" style="display: none;">
      Alejandroff
    </a>
    <span class="editable-container editable-inline" style="">
      <div>
        <div class="editableform-loading" style="display: none;">
        </div>
        <form class="form-inline editableform" style="">
          <div class="control-group">
            <div>
              <div class="editable-input" style="position: relative;">
                <input type="text" class="input-medium" style="padding-right: 24px;">
                <span class="editable-clear-x">
                </span>
              </div>
            </div>
            <div class="editable-error-block help-block" style="display: none;">
            </div>
          </div>
        </form>
      </div>
    </span>
  </h4>
  <h4>
    <a href="#" data-type="text" id="lastName" class="editable editable-click" style="display: inline;">
      Puchauff
    </a>
  </h4>
</div>

到目前为止已识别的名称输入元素如

xpath = "//*[@id="userDetails"]/div[1]/div[1]/h4[1]/span/div/form/div/div[1]/div/input

,但我知道这是不正确的,因为它使我的测试脆弱(万一开发人员将)。删除一个div测试将失败)。

谁能建议如何识别输入的另一种方式?

Try

"//a[@id='firstName']//following::input[@class='input-medium']"

我没有看到您提供的标记上定义了userDetails,但是您需要一些独特的东西来依赖。假设你想要这样的输入:

                        <div class="editable-input" style="position: relative;">
                            <input type="text" class="input-medium" style="padding-right: 24px;">
                                <span class="editable-clear-x"/>
                            </div>
                        </div>

可以使用id="firstName"标识符。所以可以输入

//div[@id="firstName"]//..//input[@class="input-medium"]

最新更新