使用CSS选择器或Xpath选择具有动态ID的单选按钮

问题描述 投票:0回答:2

我正在Visual Studio中使用C#选择多个是或否问题。下面是选择“是”的第一个按钮。 Id不是静态的,因此不能使用它,并且我不确定哪个路径(CSS或Xpath)对于此路由最有效。在此先感谢

<div class="row form-group">
  <label class="form-label col-md-4 col-lg-3">Was everything satisfactory?</label>
  <div class="col-md-7 col-lg-8"><fieldset class="form-group form-radio-group" id="__BVID__385">
    <div tabindex="-1" role="group"><div role="radiogroup" tabindex="-1" class="" id="__BVID__386">
      <div class="custom-control custom-control-inline custom-radio">
        <input type="radio" autocomplete="off" class="custom-control-input" value="true" id="__BVID__387" name="__BVID__386">
        <label class="custom-control-label" for="__BVID__387">Yes</label>
      </div>
    </div>
  </div>
c# visual-studio selenium-webdriver xpath css-selectors
2个回答
0
投票

如果您最好使用XPath或CSS选择器,则取决于手边的元素和个人偏好。由article链接的E. Wiest有一些优点。

在您的具体情况下,您可以使用CSS选择器,例如:checked

:checked
  • [如果要选择后续的input[type='radio']:checked ,例如]

    label

或建议的一些XPath

input[type='radio']:checked+label

就个人而言,我还认为XPath更强大,但CSS选择器通常同样足够。


0
投票

当您具有动态CSS ID(名称)时,最好使用Xpath。

根据您的要求('选择多个是或否问题'),您应该与问题和选项建立黑白关联。

您可以像下面的示例中那样在两个元素之间建立Xpath关系。

//label[contains(text(), "Yes")]/preceding::input

根据您的要求更新这些Xpath

© www.soinside.com 2019 - 2024. All rights reserved.