当前位置: 首页 > 知识库问答 >
问题:

将web驱动程序保持在

戈巴英
2023-03-14

公共类LogIntoapp{

@Test
public static void main() {


    Login();
    AddAccountData();
}

在我的登录方法中,我有:System.SetProperty(“webdriver.chrome.driver”,“c:/drivers/chromedriver.exe”);WebDriver驱动程序=新ChromeDriver();

以便在调用AddAccountData时,需要持久化该驱动程序以继续导航。我不想在我的第二种方法中创建一个新的web驱动器。希望我不是完全偏离基础的这种方法。

共有1个答案

臧曜瑞
2023-03-14

我真的建议您查阅page object模式,以了解如何构造测试,它会使测试的可伸缩性更强。我建议您使用http://code.google.com/p/selenium/wiki/pageObjects。但是如果您谷歌搜索这个名称,那么您会发现很多优秀的资源。

你可能想忽略我的建议,让你的测试继续工作。最简单的方法是让您的登录方法返回您创建的驱动程序。

public WebDriver Login(){
    //your current code here

    return driver;
}

那么在您的测试中,您将会:

WebDriver driver = Login();

AddAccountData(driver);

基本上,您会将驱动程序传递给每个方法。

不过,我还是推荐使用页面对象的第一种方法。

当我在这里的时候,还有一些值得注意的东西,您的测试是public static void main,虽然这是应用程序的正常入口点,但测试通常不是结构,它应该只是一个public void方法,并且名称不一定是main(事实上,将其称为so会让人困惑)。

其次,按照惯例,Java中的方法名以小写字母开头,遵循惯例将帮助人们更容易地理解代码,因为它变得更加复杂。

 类似资料:
  • 这就是我想使用WebDriver执行的。 选中“保持用户登录”复选框登录站点 问题是当我关闭驱动程序并重新打开它时,我没有登录。 我的代码看起来像这样-

  • 我们正在使用Selenium网络驱动程序和chrome。Selenium web驱动使用HTTP协议与chrome交互。任何嗅探工具都可以监听发送到chrome的数据。 如何保护网络驱动程序和浏览器之间使用的 HTTP 通信?

  • 问题内容: 我使用以下代码在C#中实例化PhantomJSDriver: 并用以下方法清理它: 进程应该退出还是留在内存中?如果应该保留在Windows 7任务管理器中可见的内存中,我可以通过编程方式将其杀死吗?我是不是该? 问题答案: 直接回答,不应该用于清理实例。为了进行适当的清理,我们必须使用。 :我认为已弃用。 :用于关闭当前页面或具有焦点的浏览器(如果它是唯一的页面/选项卡)。 :它用于

  • 我试图通过网络驱动程序在“http://www.kayak.co.in/?ispredir=true”中选择入住和退房时间。无法选择任何日期。请帮帮我。

  • 我是SeleniumWebDriver的新手。我写这段代码是为了理解导航命令,但是一旦浏览器打开,就会显示一个登录弹出窗口。我试图使用类名或xpath关闭它,但出现超时异常。 在这种情况下,我需要使用显式等待吗?你能帮我找出问题所在吗? } 例外情况: [43.366][SEVERE]:超时接收来自渲染器的消息: 37.150[43.373][SEVERE]:超时接收来自渲染器的消息:-0.007

  • 我得到了这个错误: SessionNotCreatedError:会话未创建超时异常:从呈现程序接收消息时超时:600.000 我正在Windows8Chrome上运行量角器测试。发生的情况是,Chrome选项卡将打开,但不会加载url,并将打开shell窗口。然后没有其他事情发生,测试超时。这说明我有一个超时错误。但我不确定为什么它一开始没有加载网站。 当我关闭chrome选项卡时,我会收到以下