#python #python-3.x #selenium
#python #python-3.x #селен
Вопрос:
Я новичок в среде Python Selenium. Это мой фрагмент кода.
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
import unittest
class LoginTest(unittest.TestCase):
def setUp(self):
self.driver= webdriver.Firefox()
self.driver.get("https://www.facebook.com/")
def test_Login(self):
driver=self.driver
facebookUsername ="somoe@gmail.com"
facebookPassword ="basabasa"
emailFieldID = "email"
passFieldID = "pass"
loginButtonXpath = "//input[@value= 'Log In']"
fbLogoXpath = "(//a[contains(href , 'logo')])[1]"
emailFieldElement = WebDriverWait[driver, 10].until(lambda driver:driver.find_element_by_id(emailFieldID))
passwordFieldElement = WebDriverWait[driver, 10].until(lambda driver:driver.find_element_by_id(passFieldID))
loginButtonElement = WebDriverWait[driver, 10].until(lambda driver:driver.find_element_by_xpath(loginButtonXpath))
emailFieldElement.clear()
emailFieldElement.send_keys(facebookUsername)
passFieldElement.clear()
passFieldElement.send_keys(facebookPassword)
loginButtonElement.click()
loginButtonElement=WebDriverWait[driver, 10].until(lambda driver : driver.find_element_by_xpath(fbLogoXpath))
def tearDown(self):
self.driver.quit()
if __name__=='__main__':
unittest.main()
Этот код загружает Facebook при запуске, но не заполняет область электронной почты и пароля автоматически и возвращается с ошибкой, упомянутой выше.
Ответ №1:
Вы пытаетесь индексировать WebDriverWait
объект вместо его инициализации.
Вы должны заменить все:
WebDriverWait[driver, 10]
с
WebDriverWait(driver, 10)
# ^ ^
Ссылка:
Комментарии:
1. @TaimurKhurram Если ответ помог, вы можете рассмотреть возможность его принятия
2. @MosesKoledoye Принятие ответов — очень сложная задача … имхо;-B (сарказм включен)