0

2つのラジオボタンのどちらが選択されているかを判断し、それに基づいてもう一方を選択しようとしています。私はJavaとセレンを使用しています。

私のHTMLは次のとおりです。

<div class="row span-670px">
<h3>Turn on</h3>
<div class="field-row">
    <div class="field-wrap radio-row clearfix ">
        <input type="radio" name="choosePaymentModel" value="QUOTEHOLD" checked="checked" />
        <label>
            ...
        </label>
    </div>
</div>

<div class="row last span-670px">
<h3>Turn off</h3>
<div class="field-row">
    <div class="field-wrap radio-row clearfix ">
        <input type="radio" name="choosePaymentModel" value="BASIC"  />
        <label>
            ...
        </span>
        </label>
    </div>
</div>

異なるのはvalue属性だけです。チェックされた属性は、どちらがチェックされたかに基づいて変化するため、2つを区別する唯一の明確な方法は値によるものです。正しいラジオボタンを取得するための適切な構文が見つからないようです。IDEを利用する場合、要素識別子は選択に応じて相互に交換されるため、すべてが一意になることはありません。

提案?

4

2 に答える 2

0

私は使用しなければなりませんでした:

element = driver.findElement(By.xpath("//input[@name='choosePaymentModel' and @value='QUOTEHOLD']"));

element = driver.findElement(By.xpath("//input[@name='choosePaymentModel' and @value='BASIC']"));

どちらが選択されたかを判断しますが、残念ながらクリック方法は機能しませんでした。

IDEで遊んでいると、幸運にも2つの別々の奇妙な要素をクリックして見つけることができましたが、実際には「isSelected」値を含む要素ではありませんでした。

どちらの場合も、自分の問題に対する答えを見つけたようです。

于 2012-11-14T15:40:24.630 に答える
0
String tempvalue[]=object.split(Concrete.VALUE_SPLIT);
//here I am splitting the values passed through data sheet against radio buttons                
String Val_radio =Browser.driver.findElement(By.xpath(OR.getProperty(tempvalue[0])+data+OR.getProperty(tempvalue[1]))).getAttribute("value");
System.out.println(Val_radio);
Boolean radio = Browser.driver.findElement(By.xpath("//input[@name='radio' and @value="+"'"+Val_radio+"'"+"]")).isSelected();
if(radio.booleanValue()==true){

//do something here

}
于 2013-07-19T02:10:04.487 に答える