【问题标题】:Python Selenium - Using same driver instance which is initiated in another filePython Selenium - 使用在另一个文件中启动的相同驱动程序实例
【发布时间】:2018-12-20 13:36:58
【问题描述】:

在第一个文件中,有以下代码。

我想在第二个文件中使用第一个文件的驱动实例,我可以调用它但得到一个异常 Nosuchelementexception

基本上我想在两个文件中使用相同的浏览器会话,请注意正确提供了导入语句以使用它们。

类初始化(): 驱动程序 = webdriver.Chrome( executable_path="C:\Program Files (x86)\Python36-32\selenium\webdriver\chromedriver_win32\chromedriver.exe")

def take_screenshot(self):
    Init.driver.get_screenshot_as_png("Testcase.png")

def browser_launch(self):
    Init.driver.set_page_load_timeout(20)
    Init.driver.get("http://url/")
    Init.driver.maximize_window()

def user_comes_in(self):
    Init.driver.find_element_by_id("username").send_keys("admin")
    Init.driver.find_element_by_name("password").send_keys("admin")
    Init.driver.find_element_by_class_name("Button").click()
    Init.driver.set_page_load_timeout(20)

在第二个文件中,这里是代码

初始化 = 初始化()

第二类(unittest.TestCase): 启动.browser_launch()

def test_user_logs(self):
    initiate.user_comes_in()
    print("test case one")

def test_user_create(self):

    initiate.user_creation()
    print("Test case two")

【问题讨论】:

    标签: python selenium


    【解决方案1】:

    如果你可以保持浏览器打开,你可以这样做:

    init.py:

    def setDriver():
        driver = webdriver.Firefox()
        driver.maximize_window()
    
    driver = setDriver()
    

    1.py:

    from init.py import driver
    driver.get('xxxx')
    

    2.py:

    from init.py import driver
    driver.get('yyyy')
    

    他们将使用相同的驱动程序和相同的浏览器。 但是如果你关闭了任何一个case文件中的驱动,其他人就不能再使用它了。所以它只在不需要关闭浏览器的情况下可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-23
      • 2022-10-15
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2014-01-03
      • 1970-01-01
      相关资源
      最近更新 更多