Я пытаюсь написать сценарий для входа в facebook. Основываясь на некоторых учебниках, я написал это до сих пор.Невозможно войти в facebook с помощью Python & Selenium. send_keys() ничего не делает
Когда выполняется следующее, он просто запускает Firefox, отправляется на facebook.com и ждет там и просто терпит неудачу. Имя пользователя и пароль не введены, и кнопка входа в систему не будет нажата.
Что я могу делать неправильно? Я думаю, что мои Идентификаторы XPath верны, проверены с помощью Firepath. Любые намеки приветствуются.
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
fbUsername = "[email protected]"
fbPassword = "mypassword"
emailFieldID = ".//*[@id='email']"
passFieldID = ".//*[@id='pass']"
loginButtonXPath = ".//input[@value='Log In']"
flLogoXpath = "(//a[contains(@href, 'logo')])[1]"
emailFieldElement = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id(emailFieldID))
passFieldElement = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id(passFieldID))
loginButtonElement = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id(loginButtonXPath))
emailFieldElement.click()
emailFieldElement.clear()
emailFieldElement.send_keys(fbUsername)
passFieldElement.click()
passFieldElement.clear()
passFieldElement.send_keys(fbPassword)
loginButtonElement.click()
WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id(flLogoXpath))
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
unittest.main()
Если вы хотите продолжить использование 'find_element_by_id', передайте только идентификатор в качестве селектора. Например, для поля электронной почты это должно быть «driver.find_element_by_id (« email »)», а также для других. – Abhinav