【问题标题】:Selenium couldn't point the control having special symbol like # , @, $Selenium 无法指向具有特殊符号的控件,例如 # 、 @ 、 $
【发布时间】:2012-12-14 11:26:14
【问题描述】:

我想点击 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" + '"' + "]");

【问题讨论】:

    标签: selenium web driver selenium-webdriver xpath


    【解决方案1】:

    driver.findElementById("ContentView_PageLayout_FlightFinderTab_HomepageTabs_FlightsTab_pnlTripType_TripType#1").getAttribute("name") 这对我有用...返回正确的值。在 Firefox 2.25 上尝试过

    【讨论】:

      【解决方案2】:

      为什么不使用带有 @FindBy 注释的 PageFactory.initElements(...) 方法?

      在您的类中使用@FindBy 注释创建一个字段,例如:

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

      之后,在方法调用之前调用 PageFactory.initElements(driver,this)。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-18
        • 2020-08-28
        • 1970-01-01
        • 2011-10-29
        • 1970-01-01
        相关资源
        最近更新 更多