浏览器会话在脚本执行期间过期

时间:2017-09-21 10:56:10

标签: java selenium selenium-webdriver

网站会话在脚本执行期间过期。我有4个类,有15-16个测试方法。虽然我使用tests.xml执行所有套件。

场景:用户登录后执行搜索

我使用以下条件

if(check user is already login)
{
    if(check user is on homepage URL)
    {
       // if user is already on homepage then perform search
    }
    else
    {
        //here my code is  first navigate the page to homepage and then perform search. 
        But the session get destroy once it navigate to home page here and the test get failed as 
    }
}
else
{
   // not login then first do login and then perform search
}

所以我的问题是:

  1. 是我的网站问题还是网络驱动程序问题?
  2. 为什么会话在页面导航时退出?我尝试了driver.get()driver.navigate().to(),但没有成功。
  3. 如果遇到这样的问题,有人能给我一些线索吗?

1 个答案:

答案 0 :(得分:-1)

如果没有更多代码,很难说出实际问题是什么,但确实存在逻辑/ DRY问题。根据代码中的注释,您可以在3个不同的地方使用搜索代码。更好的逻辑流程就是这样的

if (user is not logged in)
{
     // log in
}
if (browser is not on homepage URL)
{
    // navigate to home page
}
// now you can do the search

部分问题可能是您似乎正在重复使用会话。您需要检查用户是否已登录或在主页上这一事实表明您不知道测试在任何给定点的位置。

编写此测试的更好方法是创建一个单一测试,实例化浏览器,导航到主页,登录用户,进行搜索,然后关闭浏览器。这是一个测试。如果您需要使用不同的搜索条件重复该测试,那么您可以进行数据驱动测试。进行这样的小测试可以更容易地了解脚本正在做什么,并且不太可能出现会话超时等问题。