11
11
# head to github login page
12
12
driver .get ("https://github.com/login" )
13
13
# find username/email field and send the username itself to the input field
14
- driver .find_element_by_id ( "login_field" ).send_keys (username )
14
+ driver .find_element ( "id" , "login_field" ).send_keys (username )
15
15
# find password input field and insert password as well
16
- driver .find_element_by_id ( "password" ).send_keys (password )
16
+ driver .find_element ( "id" , "password" ).send_keys (password )
17
17
# click login button
18
- driver .find_element_by_name ( "commit" ).click ()
18
+ driver .find_element ( "name" , "commit" ).click ()
19
19
# wait the ready state to be complete
20
20
WebDriverWait (driver = driver , timeout = 10 ).until (
21
21
lambda x : x .execute_script ("return document.readyState === 'complete'" )
22
22
)
23
23
error_message = "Incorrect username or password."
24
24
# get the errors (if there are)
25
- errors = driver .find_elements_by_class_name ( " flash-error" )
25
+ errors = driver .find_elements ( "css selector" , ". flash-error" )
26
26
# print the errors optionally
27
27
# for e in errors:
28
28
# print(e.text)
32
32
else :
33
33
print ("[+] Login successful" )
34
34
35
+ # an example scenario, show me my public repositories
36
+ repos = driver .find_element ("css selector" , ".js-repos-container" )
37
+ # wait for the repos container to be loaded
38
+ WebDriverWait (driver = driver , timeout = 10 ).until ((lambda x : repos .text != "Loading..." ))
39
+ # iterate over the repos and print their names
40
+ for repo in repos .find_elements ("css selector" , "li.public" ): # you can use "li.private" for private repos
41
+ print (repo .find_element ("css selector" , "a" ).get_attribute ("href" ))
42
+
35
43
# close the driver
36
44
driver .close ()
0 commit comments