2017-05-03 75 views
0

我想定义一个默认的webdriver状态。 Webdriver的这种状态是在登录并创建脚本之后,该脚本负责访问网站并创建一个我希望继续测试的新工作区。我想从这个起点开始构建其余的类。 返回此驱动程序并执行下一个命令的工作,但在我执行工作区中的第一个操作后,我不能返回到所需的默认状态,所以我可以调用其他具有不同功能的个人类在网站上。定义WebDriver的默认状态,以继续在其他情况下使用

登录脚本:新的Firefox的驱动程序中,使用getURL,填写信息,点击确认,返回驱动程序

创建工作区:登录脚本,继续与菜单之间nagivagtion和工作区的信息填写,并建立它,并返回它。

代码很长,不会粘贴在这里。 我的问题是,在创建一个工作区并开始进一步的操作之后,每次调用一个新操作时,selenium都会重新执行所有登录操作和创建操作。 我不是一个非常有经验的编码员,所以我正在寻求帮助。 有没有我的方式,我可以定义一个公共变量,可以持有这种状态的驱动程序? 如何在执行操作后恢复到此状态?

我目前分配WebDriver驱动程序= logInAndCreate()在每个动作的第一行,显然处理这2,我结束它在回报驱动程序;
我在网站上已经定义的动作有几行是代码处理导航,查找和行为webelements等几行。有很多的选择,并且为所有人编写自立式测试用例都不会发生,所以我决定把行动安排到课堂上,并从这些部分构建我的例子。

+1

我看到你有些疑惑,但他们应该更具体地回答。这个问题可以被认为是“太宽泛”或“主要是基于意见”。请阅读以下链接以更熟悉SO:[Tour](http://stackoverflow.com/tour)| [如何问](http://stackoverflow.com/help/how-to-ask)| [最小,完整和可验证示例](http://stackoverflow.com/help/mcve) – Tom

+1

代码中的流程由您定义。如果没有必要,您不必每次都调用登录。我建议你检查页面对象模式。在这里您可以找到两个链接:[测试设计注意事项](http://www.seleniumhq.org/docs/06_test_design_considerations.jsp)和[页面对象 - Martin Flower文章](https://martinfowler.com/bliki/ PageObject.html)。我认为这是一个很好的开始,可以澄清您可能面临的一些疑问。 – Tom

+1

伟大的参考@Tom谢谢 – DebanjanB

回答

1

WebDriver没有任何状态,它只是一个连接到浏览器,您可以用来发送命令到浏览器。因此,您无法使用WebDriver恢复网站的状态。另外,函数返回driver也不会完成任何操作,因为您不改变函数内部的驱动程序的状态。

也许你最好的选择是和你的开发人员一起,看看你是否有办法创建一个包含状态的cookie等。例如,也许一旦用户登录后,就会创建一个站点cookie来指示用户已登录。而不是使用用户界面登录,您可以创建正确格式的cookie,使站点处于已登录的用户。这只是一个例子,但这应该足以让你开始。

+0

整理出来,碰巧是我比饼干更缺乏知识。 我根本不知道我可以在我班的名字后面括号中使用Webdriver驱动程序。我是一个初学者,它很明显:D – Ewhenn