使用 @FindBy 注释
定义了许多 WebElements@FindBy(id="Corporate Insiders")
private static WebElement FS_LvFd_Filers_CorporateInsidersLink;
@FindBy(id="Companies")
private static WebElement FS_LvFd_Filers_CompaniesLink;
将这些Web元素存储在地图
中private static Map<String, WebElement> FilersClickWebElemnt = new HashMap<String, WebElement>();
FilersClickWebElemnt.put(prop.getString("F_CorporateInsiders"),FS_LvFd_Filers_CorporateInsidersLink);
FilersClickWebElemnt.put(prop.getString("F_Companies"),FS_LvFd_Filers_CompaniesLink);
能够通过检查Map ....的大小将所有Web元素成功存储到地图中。
但无法执行 .click()或 .getText()上的操作 检索到的Web元素构成Map FilersClickWebElemnt。
FilersClickWebElemnt.get(Sec_Filers).click();
FilersClickWebElemnt.get(Filers).click();
System.out.println(FilersClickWebElemnt.get(Filers).getText());
甚至尝试过这样做:
WebElement e = FilersClickWebElemnt.get(Filers);
e.click()
Sec_Filers和Filers是Map中WebElements存储的值的关键,作为参数传递给此函数
使用: Selenium-server-standalone- 2.53.0, Java 1.7, FireFox版本48.0(Gecko驱动程序), Ubuntu 14.04, 与TestNG一起
执行上述操作/代码不会在Eclipse控制台中给出任何错误。
任何人, 请告诉我可能出现的问题或是否有更好的方法。
答案 0 :(得分:0)
根据您提供的信息,我假设您正在存储Web元素引用但不存储实际的Web元素对象,也就是说,您必须仅在PageFactory.initElements(驱动程序,类);被称为
所以,我建议你在元素
初始化之后将web元素添加到map中