簡體   English   中英

使用Python / Selenium從另一個文件調用函數

[英]Calling functions from another file with Python/Selenium

我在運行硒測試並嘗試從同一目錄中的另一個文件調用函數時遇到麻煩。 我瀏覽了許多有關導入模塊的主題,但是我沒有運氣。 當我運行test.py時 ,它將停止在wait_until_id_is_clickable上,並引發base.py中的NoSuchElementException。 如果將其放在test.py中,則此函數成功。

test.py

import unittest
import base
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.action.chains import ActionChains


class Selenium_Test(unittest.TestCase):


    def setUp(self):
        self.browser = webdriver.Firefox()

    def test_community_diversity(self):
        browser = self.browser
        browser.get("https://python.org")
        self.assertEqual(browser.title, "Welcome to Python.org")
        base.wait_until_id_is_clickable("community") #Function in base.py

        elem = browser.find_element_by_id("community")

        hover = ActionChains(browser).move_to_element(elem)
        hover.perform()
        browser.implicitly_wait(1)

        elem2 = elem.find_element_by_link_text("Diversity")
        self.assertEqual(elem2.is_displayed(), True)

    def tearDown(self):
        self.browser.close()

if __name__=="__main__":
    unittest.main()

base.py

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

browser = webdriver.Firefox()

def wait_until_id_is_clickable(element,time=10):
    wait = WebDriverWait(browser, time)
    try:
        wait.until(EC.element_to_be_clickable((By.ID,element)))
    except:
        raise NoSuchElementException("Could not find element in time.")

我正在使用鼻子測試進行測試。 任何幫助表示贊賞!

base.py您將創建一個無關的瀏覽器實例。 刪除此行:

browser = webdriver.Firefox()

並將您在test.py創建的瀏覽器傳遞給wait_until_id_is_clickable 將定義修改為:

def wait_until_id_is_clickable(browser, element, time=10):

並調用:

base.wait_until_id_is_clickable(browser, "community")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM