在类中重用“driver.webdriver”

时间:2016-06-13 09:11:41

标签: python-3.x selenium

我是python和selenium的完全新手,所以请原谅解决方案的设计。

我一直在四处寻找,但我找不到我需要的答案。

我正在尝试创建一个名为“Navigators”的类,我可以使用它轻松地在系统中导航。

我的想法是我可以从类中调用一个函数,然后将我带到我想要处理的窗口。

我面临的问题是驱动程序变量

driver = webdriver.Chrome('C:/temp/chromedriver.exe')

每次我使用变量时,都会打开一个新的Chrome browser

有没有办法让我在不打开新浏览器的情况下使用变量?我希望我的功能可以做到:

Users = driver.find_element_by_link_text("Users")
Users.click()

2 个答案:

答案 0 :(得分:0)

您必须创建单个驱动程序实例。

class commonLib{
 Webdriver driver = null
 private setDriver()
{
    driver = new FirefoxDriver();
}
public static getDriver(){
  return driver;
}
}

所以,无论你需要使用驱动程序。使用函数getDriver();

代表: -    Users=getDriver().find_element_by_link_text("Users") Users.click()

此外,您可以将 Singleton类用于webdriver类,其中只创建一个实例,无论您创建多少个实例,它都将指向单个实例。

答案 1 :(得分:0)

感谢您的帮助。 我使用了RemcoW的建议并研究了使用Page Object设计模式。它似乎最适合我想要实现的目标,这是我用来编写代码的页面:

https://justin.abrah.ms/python/selenium-page-object-pattern--the-key-to-maintainable-tests.html

相关问题