from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
import unittest
class LoginTest(unittest.TestCase):
def setUp(selfself):
self.driver = webdriver.Chrome(executable_path='C:\Users\pepe2\Downloads\chromedriver_win32\chromedriver.exe')
driver.maximize_window()
self.driver.get("https://account.microsoft.com/account")
driver.find_element_by_id("meControl").click()
def test_Login(self):
emailFieldID = "email"
passFieldID = "pass"
LoginButtonID = "idSIButton9"
emailFieldElement = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id(emailFieldID))
passFieldElement = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_name(passFieldID))
LoginButtonElement= WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id(LoginButtonID))
emailFieldElement.clear().send_keys("************")
passFieldElement.clear().send_keys("***********")
LoginButtonElement.click()
def tearDown(self):
self.driver.quit()
if __name__ == '_main_':
unittest.main()
-2
A
Répondre
0
Vous appelez cela indirectement à travers une classe, pas dans main. Par conséquent, (__name__ == '_main_')
sera toujours faux.
-1
Notez ce qui se passe lorsque j'exécute ce code seul.
if __name__ == '_main_':
print ('something 1')
if __name__ == '__main__':
print ('something 2')
Le résultat est,
something 2
Il devrait y avoir doubles underscores de chaque côté de la 'principale'.
J'ai changé cette ligne:
self.driver = webdriver.Chrome(executable_path=r'C:\Users\pepe2\Downloads\chromedriver_win32\chromedriver.exe')
(. Le chemin doit être marqué comme une chaîne brute car il contient des barres obliques inverses)
Je soupçonne que celui ligne dans le programme principal devrait être,
LoginTest.main()
car LoginTest
dérive de unittest
. Cependant, bien que le script s'exécute maintenant, il génère une erreur en affirmant que LoginTest
ne possède pas l'attribut `Main '.
À vous de choisir.