2015-02-23 53 views
0

在設計頁面對象類時,我們使用@FindBy(name="value"),即FindBy帶有名稱。如何通過selenium webdriver中的@FindBy批註選擇單選按鈕

下面的代碼找到一個網頁的文本框,如用戶名字段。 @FindBy(name="username")

WebElement txtboxUname; 

........ //裏面testfunction我們稱這種txtboxUname像下面

txtboxuname.sendKeys("purnendu");

所以對於單選按鈕,頁面對象,我們如何定義它通過@FindBy? ? 下面的代碼是不工作

@FindBy(name="radio")

List<WebElement> radioBtnSelectTrip;

.......內部函數調用

radioBtnSelectTrip.get(0).click();

以上@FindBy技術並不無線電工作button.can請你幫瞭如何通過@FindBy定義radiobutton,並用它Pagefactory

回答

2

對於UI映射有幾種技術。在使用@FindBy來映射UI元素時,可以使用xpath來映射元素。但是,您要確保xpath正確,並且只返回目標radio。查看如何找到xpathhere

元素瀏覽更多關於Annotation Type FindByhere

和示例,

@FindBy(name="radio") 

List<WebElement> radioBtnSelectTrip; 

不會回報你一個無線電而是一個列表。要在特定的收音機上執行操作,您需要添加額外的過濾器。例如if條件以匹配目標單選按鈕上的獨特條件。

編輯添加代碼,以探討如何FindBy可以找到一個特定的無線電

@FindBy(how = How.CSS, using = "[type='radio'][value='roundtrip']") 
public WebElement roundTrip; 

@FindBy(how = How.CSS, using = "[type='radio'][value='oneway']") 
public WebElement oneWay; 
+0

'@ FindBy'可以返回'List':https://selenium.googlecode.com/git/docs/api/java/index.html?org/openqa/selenium/support/FindBy.html – SiKing 2015-02-23 18:16:51

+0

@SiKing我也是這樣說的。 – Saifur 2015-02-23 18:18:04

+0

OP進一步指定他正在調用'radioBtnSelectTrip.get(0).click();'。所以我不明白你的「額外的過濾器」評論。 – SiKing 2015-02-23 18:21:25

0

你有一個錯字實現。如果你想返回一個單選按鈕,你可能想要選擇type@FindBy(xpath="//input[@type='radio']")

+0

非常感謝saifur和siking的快速回答。 – 2015-02-24 05:23:26

+0

往返 單程 2015-02-24 05:29:30

+0

以上是單選按鈕的對HTML描述我page..so如何通過@FIndBy定義我如何訪問我的測試中的單選按鈕,請向我提供代碼。 – 2015-02-24 05:31:32

相關問題