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)。

这将为该字段创建一个动态代理,您可以以更简洁的方式访问代码中的单选选项。

于 2012-12-16T00:31:10.540 回答