我目前正在尝试为我们正在创建的产品创建一个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元素。但是,我面临的问题是元素;每个会话随机生成id
,data-ref
和class
与其他随机按钮相同。
以下似乎找不到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元素。
答案 0 :(得分:1)
使用以下逻辑:
使用data-ref
和class
属性创建所有网络元素(范围)的列表。
按索引从列表中单击所需的一个。
答案 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;