我想知道爲什麼這個代碼打開兩次Mozilla,以及爲什麼它不完成時關閉它。此外,我不明白爲什麼登錄是一個具有函數的類,而不是直接函數。硒Python:我的代碼中有哪些錯誤?
> import unittest
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class LoginDetails(object):
def __init__ (self):
self.driver = webdriver.Firefox()
def logindetails(self, username, password):
driver = self.driver
driver.maximize_window()
driver.get("https://miclaro.claro.com.ar/")
driver.implicitly_wait(30)
driver.find_element_by_id("_58_login_movil").send_keys(username)
driver.find_element_by_id("_58_password_movil").send_keys(password)
driver.find_element_by_id("btn-home-login").click()
# Login Success
class TestLogin(unittest.TestCase):
def setUp(self):
self.ld = LoginDetails()
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(30)
def test_sr_Login(self):
self.ld.logindetails("user", "pass")
def tearDown(self):
self.driver.close()
if __name__ == "__main__":
#import sys;sys.argv = ['', 'Test.testName']
unittest.main()
非常感謝!
我覺得司機不應該由'LoginDetails'類進行控制。 'LoginDetails'非常接近頁面對象表示法,因此應該從外部給予驅動程序。另外,在一個課程中打開瀏覽器並關閉另一個課程將使其接近「意大利麪條」。 – alecxe
在我看來,這取決於你想要對班級做什麼。在你的解決方案中,你不需要上課。登錄詳細信息也可以是一個函數。我試圖回答爲什麼LoginDetails是一個類的問題。你是對的,但不應該在代碼中的不同位置打開和關閉連接。我希望你不要介意我在我的回答中包含這個評論。 – Ascurion
「LoginDetails」與硒有什麼特別的含義?否則,從我在代碼示例中可以看到的是沒有繼承的新對象。你是對的,但如果你想像一個頁面對象,你應該給司機「從外面」。 – Ascurion