Selenium 关于 java selenium 元素可操作性的疑问

测试小书童 · 2017年05月04日 · 最后由 测试小书童 回复于 2017年05月04日 · 1733 次阅读

初学 java+pagefactory 来写 selenium,如:

public class LoginPage extends BasePage{
    @FindBy(name="account")
    @CacheLookup //加入缓存,更新值的时候先从缓存中取
    WebElement account;

    @FindBy(name="password")
    WebElement password;

    @FindBy(xpath="//*[@id=\"content\"]/div[1]/div/ul/li[1]/div[2]/div[1]")
    WebElement titleText;

    //设置用户名
    public void setAccount(String strAccout){
        account.sendKeys(strAccout);
    }

看了很多这样类似的代码,但是都没对元素的可操作性进行判断,如: @FindBy(name="account") 这里的 account 如果不存在,直接点击就会报错

  • 是否应该对每个用例的元素首先进行查找一次,才给进行其他的点击,输入等操作?
  • 如果需要对每个元素的可见性进行判断,代码该怎么在现有的代码结构下进行控制?
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 4 条回复 时间 点赞

selenium 的 find 方法找不到你指定的元素就会报错,解决思路一个是写 try 另一个思路是先找集合再判断长度

辣么丑 回复
  • 一个是整个用例用 try 去捕获异常,但是这样无法定位到具体哪个元素问题
  • 一个是对用例中的每个操作步骤都进行 try,只要一个元素找不到,这个用例就失败。我现在是这样做的,感觉挺麻烦

其实程序解决思路上是这样,反过来想为什么会找不到元素呢?

辣么丑 回复

比如,页面元素变化了之内的~关帖了我现在用的是一个是整个用例用 try 去捕获异常

测试小书童 关闭了讨论 05月04日 18:11
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册