-
-
Save leostera/3535568 to your computer and use it in GitHub Desktop.
from selenium import webdriver | |
from selenium.webdriver.common.keys import Keys | |
usr = "" | |
pwd = "" | |
driver = webdriver.Firefox() | |
# or you can use Chrome(executable_path="/usr/bin/chromedriver") | |
driver.get("http://www.facebook.org") | |
assert "Facebook" in driver.title | |
elem = driver.find_element_by_id("email") | |
elem.send_keys(usr) | |
elem = driver.find_element_by_id("pass") | |
elem.send_keys(pwd) | |
elem.send_keys(Keys.RETURN) | |
elem = driver.find_element_by_css_selector(".input.textInput") | |
elem.send_keys("Posted using Python's Selenium WebDriver bindings!") | |
elem = driver.find_element_by_css_selector("input[value=\"Publicar\"]") | |
elem.click() | |
driver.close() |
Hi. I'm a newbie to using selenium with python. I've a question here..
Can we provide the login credentials in our script so that even that is automated.
Currently the script stops at the login page.
How do we do that if we can?
@suprith4989 I would do this
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
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 = "[email protected]"
facebookPassword = "Passw0rd123"
emailFieldID = "email"
passFieldID = "pass"
loginButtonXpath = "//input[@value='Log In']"
facebookLogo = "/html/body/div/div[1]/div/div/div/div[1]/div/h1/a"
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_xpath(loginButtonXpath))
emailFieldElement.clear()
emailFieldElement.send_keys(facebookUsername)
passFieldElement.clear()
passFieldElement.send_keys(facebookPassword)
loginButtonElement.click()
WebDriverWait(driver, 20).until(lambda driver: driver.find_element_by_xpath(facebookLogo))
def tearDown(self):
self.driver.quit()
if name == 'main':
unittest.main()
How can I use assert/verify for this same test to check the name of the user (assert that the username is visible)?
Please someone tell me what is the use of this line ?
elem = driver.find_element_by_css_selector(".input.textInput")
And....this ...
elem = driver.find_element_by_css_selector("input[value="Publicar"]")
@vivekiyer114 : according to this http://selenium-python.readthedocs.io/api.html driver.find_element_by_css_selector for search and match from css website.
I got this ERROR
File "new_login.py", line 17, in
elem = driver.find_element_by_css_selector(".input.textInput")
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 437, in find_element_by_css_selector
return self.find_element(by=By.CSS_SELECTOR, value=css_selector)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 752, in find_element
'value': value})['value']
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 236, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 192, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: .input.textInput
Hi,
I have wrote the script that automates the Facebook login, status updates and likes (can select the user). Have a look at GitHub
Thanks
Thank you so much i am able to login my facebook account by python. but can you tell me what does "assert "Facebook" in driver title" mean.
i am very new to python.
i am running below code to login one site named - Trivago could anyone help me.
code..
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
usr = "Trivago"
pwd = "123"
driver = webdriver.Chrome("F:\Training\Python\chromedriver.exe")
driver.get("https://intelligence.trivago.com")
#assert "Trivago" in driver.title
elem = driver.find_element_by_id("email")
elem.send_keys(usr)
elem = driver.find_element_by_id("pass")
elem.send_keys(pwd)
elem.send_keys(Keys.RETURN)
error -
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"id","selector":"email"}
(Session info: chrome=61.0.3163.100)
(Driver info: chromedriver=2.32.498550 (9dec58e66c31bcc53a9ce3c7226f0c1c5810906a),platform=Windows NT 6.1.7600 x86_64)
the css element which corresponds to the post button has changed.Also,it is worthwhile to introduce a wait statement before the final driver close or else Selenium will close the browser before facebook can post the message.