0

Xpath と Id 情報が次のラジオ オプション ボタンをクリックしたい:-

<input id="ContentView_PageLayout_FlightFinderTab_HomepageTabs_FlightsTab_pnlTripType_TripType#0" 
type="radio" onclick="showHideReturningDate('return');" checked="checked" value="Return" 
name="ContentView$PageLayout$FlightFinderTab$HomepageTabs$FlightsTab$pnlTripType$TripType">

Xpath:

//*[@id="ContentView_PageLayout_FlightFinderTab_HomepageTabs_FlightsTab_pnlTripType_TripType#0"]

<input id="ContentView_PageLayout_FlightFinderTab_HomepageTabs_FlightsTab_pnlTripType_TripType#1" 
type="radio" onclick="showHideReturningDate('oneway');" 
value="One Way" name="ContentView$PageLayout$FlightFinderTab$HomepageTabs$FlightsTab$pnlTripType$TripType">

Xpath:

//*[@id="ContentView_PageLayout_FlightFinderTab_HomepageTabs_FlightsTab_pnlTripType_TripType#1"]

IDを取得するためにこれらの方法を試しました:

1:

return By.XPath("(//input[@id="++'ContentView_PageLayout_FlightFinderTab_HomepageTabs_FlightsTab_pnlTripType_TripType#1']");

2:

return By.Id("ContentView_PageLayout_FlightFinderTab_HomepageTabs_FlightsTab_pnlTripType_TripType#1");

3:

return By.XPath("//*[@id=" + '"' + "ContentView_PageLayout_FlightFinderTab_HomepageTabs_FlightsTab_pnlTripType_TripType#1" + '"' + "]");
4

2 に答える 2

0

driver.findElementById("ContentView_PageLayout_FlightFinderTab_HomepageTabs_FlightsTab_pnlTripType_TripType#1").getAttribute("name") これはうまくいきます...正しい値を返します。2.25のFirefoxで試した

于 2012-12-14T12:30:30.333 に答える
0

@FindBy アノテーションで PageFactory.initElements(...) メソッドを使用しないのはなぜですか?

次のように、クラスに @FindBy アノテーションを付けてフィールドを作成します。

@FindBy(xpath = "//input[@id='IdValue']")
WebElement radioOption;

その後、メソッド呼び出しの前に PageFactory.initElements(driver,this) を呼び出します。

これにより、フィールドへの dynaproxy が作成され、よりクリーンな方法でコード内の無線オプションにアクセスできます。

于 2012-12-16T00:31:10.540 に答える