Selenium点击我能找到的元素下方的跨度

时间:2017-12-19 11:57:39

标签: c# html selenium

我目前正在尝试为我们正在创建的产品创建一个Selenium框架。我正在努力寻找下面的单选按钮:

<input type="button" id="f_pAAF60F411E5E4609865C3F6B0923977D45_3_1_0-inputEl" name="boolean_45" data-ref="inputEl" fieldref="PolicyInput.GoingOnCruise" objectref="pAAF60F411E5E4609865C3F6B0923977D" tabindex="0" class="x-form-cb-input x-hidden-clip" autocomplete="off" hidefocus="true" role="radio" aria-hidden="false" aria-disabled="false" aria-readonly="false" aria-invalid="false" aria-checked="false" aria-labelledby="f_pAAF60F411E5E4609865C3F6B0923977D45_3_1_0-boxLabelEl" data-componentid="f_pAAF60F411E5E4609865C3F6B0923977D45_3_1_0">
<span id="f_pAAF60F411E5E4609865C3F6B0923977D45_3_1_0-displayEl" data-ref="displayEl" class="x-form-field x-form-radio x-form-radio-default x-form-cb x-form-cb-default "></span>

使用该产品可以点击收音机,但我需要能够点击span元素。但是,我面临的问题是元素;每个会话随机生成iddata-refclass与其他随机按钮相同。

以下似乎找不到span元素。

[FindsBy(How = How.XPath, Using = "//input[ends-with(@id,'0-inputEl')][@fieldref='PolicyInput.GoingOnCruise']/span")]
private IWebElement CruiseYes;

有没有办法选择span元素。例如,使用input元素中的fieldref,然后使用span元素中的0-displayEl,然后单击span元素。

2 个答案:

答案 0 :(得分:1)

使用以下逻辑:

  1. 使用data-refclass属性创建所有网络元素(范围)的列表。

  2. 按索引从列表中单击所需的一个。

答案 1 :(得分:0)

尝试以下代码块:

[FindsBy(How = How.XPath, Using = "//input[ends-with(@id,'inputEl') and starts-with(@name,'boolean')]/span[@class='x-form-field x-form-radio x-form-radio-default x-form-cb x-form-cb-default']")]
private IWebElement CruiseYes;