def download_book(url, name):
chromedriver = '/home/rajdeep1008/Desktop/chromedriver'
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get(url)
link = driver.find_element_by_link_text(name)
actionChains = ActionChains(driver)
actionChains.context_click(link)
actionChains.send_keys(Keys.ARROW_DOWN)
actionChains.send_keys(Keys.ARROW_DOWN)
actionChains.send_keys(Keys.ARROW_DOWN)
actionChains.send_keys(Keys.ARROW_DOWN)
actionChains.send_keys(Keys.RETURN)
actionChains.perform()
while True:
if not os.path.isfile('/home/rajdeep1008/Downloads/' + name + '.pdf'):
time.sleep(5)
else:
break
driver.quit()
# download_book('http://it-ebooks.info/book/6719/', 'Android Studio Game Development')
python类RETURN的实例源码
def press_key(element, key):
"""Press a given key in the element.
Parameters:
element : element
key : value
"""
step_message = 'Press key: {}'.format(key)
execution.logger.info(step_message)
_capture_or_add_step(step_message, execution.settings['screenshot_on_step'])
webelement = get_browser().find(element)
if key == 'RETURN' or key == 'ENTER':
webelement.send_keys(Keys.RETURN)
elif key == 'UP':
webelement.send_keys(Keys.UP)
elif key == 'DOWN':
webelement.send_keys(Keys.DOWN)
elif key == 'LEFT':
webelement.send_keys(Keys.LEFT)
elif key == 'RIGHT':
webelement.send_keys(Keys.RIGHT)
else:
raise Exception('Key value {} is invalid'.format(key))
def login():
driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.get("https://www.facebook.com")
driver.find_element_by_id('email').send_keys("email_address")
driver.find_element_by_id('pass').send_keys("password")
driver.find_element_by_id('u_0_n').click()
'''
time.sleep(1)
print "------- login ---------"
email = driver.find_element_by_id('email')
email.send_keys("email_address")
time.sleep(1)
password = driver.find_element_by_id('pass')
password.send_keys("password")
time.sleep(1)
password.send_keys(Keys.RETURN)
time.sleep(2)
driver.get("https://www.facebook.com")
time.sleep(1)
pickle.dump(driver.get_cookies(), open("cookies.pkl", "w"))
'''
def setUp(self):
self.driver = self.getDriver()
print("Got driver")
self.driver.get(os.environ["OS_HORIZON"])
try:
delay = 5
element_present = EC.presence_of_element_located((By.NAME,
'username'))
WebDriverWait(self.driver, delay).until(element_present)
self.driver.title.index("Login - OpenStack Dashboard")
elem = self.driver.find_element_by_name("username")
elem.send_keys(os.environ["OS_USERNAME"])
elem = self.driver.find_element_by_name("password")
elem.send_keys(os.environ["OS_PASSWORD"])
elem.send_keys(Keys.RETURN)
except TimeoutException:
print("Loading took too much time!")
raise
time.sleep(2)
def netease():
options = webdriver.ChromeOptions()
options.add_argument(
'--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36')
driver = webdriver.Chrome(executable_path=r'C:\software\chrome\chromedriver.exe',
chrome_options=options)
driver.implicitly_wait(40)
driver.get("http://30daydo.com/")
elem_user = driver.find_element_by_tag_name("??")
elem_user.click()
''''
elem_pwd = driver.find_element_by_name("password")
elem_pwd.send_keys("123456")
elem_pwd.send_keys(Keys.RETURN)
'''
time.sleep(5)
assert "baidu" in driver.title
driver.close()
driver.quit()
def fb_login(self):
"""
logs into facebook
:return:
"""
self.log('++ logging into facebook')
self.driver.get("http://www.facebook.org")
time.sleep(1)
assert "Facebook" in self.driver.title
elem = self.driver.find_element_by_id("email")
elem.send_keys(self.fb_username)
elem = self.driver.find_element_by_id("pass")
elem.send_keys(self.fb_password)
elem.send_keys(Keys.RETURN)
time.sleep(3)
self.assert_logged_in()
self.log('++ successfully logged in')
self.logged_in = True
def facebook_login(driver, username, password):
print("\n\n\nLogin to Facebook...."),
sys.stdout.flush()
url = "http://www.facebook.com"
driver.get(url)
elem = driver.find_element_by_id("email")
elem.send_keys(username)
elem = driver.find_element_by_id("pass")
elem.send_keys(password)
elem.send_keys(Keys.RETURN)
time.sleep(1)
html_source = driver.page_source
if "Please re-enter your password" in html_source or "Incorrect Email" in html_source:
print(Fore.RED + "Incorrect Username or Password")
driver.close()
exit()
else:
print(Fore.GREEN + "Success\n")
return driver.get_cookies()
def start_search(driver, keywords, var):
try:
# Determine the number of search terms and choose one randomly
nb = file_len(keywords)
rand = random.randint(1, nb)
search = linecache.getline(keywords, rand)
# Determine search field and enter search term
elem = driver.find_element_by_name(var)
elem.send_keys(search)
elem.send_keys(Keys.RETURN)
echoC(myName, "Searched: " + search)
time.sleep(5)
except Exception as e:
echoC(myName, "start_search() error: " + str(e))
return -1
return 0
# Click on a link based on the HTML tag name
def test_search_in_python_org(self):
driver = self.driver
driver.get("http://t.cn/R9U4xwG")
#self.assertIn("Python", driver.title)
elem = driver.find_element_by_name("editor")
#????????
elem.send_keys("???????")
#time.sleep(5)
#elem.clear()
#elem.send_keys(Keys.RETURN)
#assert "No results found." not in driver.page_source
ele=driver.find_element_by_tag_name("input")
#<i class="icon-pic iconfont icon-mailbox_icon_addpic_1"></i>
time.sleep(2)
#ele.click()
print ("done")
#????????????
ele.send_keys("C:\\CV\\Github\\Opencv_learning\\pic.jpg")
time.sleep(15)
driver.find_element_by_id("btnPreview").click()
def test_search_in_python_org(self):
driver = self.driver
driver.get("http://t.cn/R9U4xwG")
#self.assertIn("Python", driver.title)
elem = driver.find_element_by_name("editor")
#????????
#elem.send_keys("???????")
#time.sleep(5)
#elem.clear()
#elem.send_keys(Keys.RETURN)
#assert "No results found." not in driver.page_source
ele=driver.find_element_by_tag_name("input")
#<i class="icon-pic iconfont icon-mailbox_icon_addpic_1"></i>
time.sleep(2)
#ele.click()
print ("done")
#????????????
ele.send_keys("C:\\CV\\Github\\Opencv_learning\\face\\pic.jpg")
time.sleep(5)
driver.find_element_by_id("btnPreview").click()
def miaomiao():
driver.get("http://t.cn/R9U4xwG")
#self.assertIn("Python", driver.title)
elem = driver.find_element_by_name("editor")
elem.send_keys("???????")
#time.sleep(5)
#elem.clear()
#elem.send_keys(Keys.RETURN)
#assert "No results found." not in driver.page_source
ele=driver.find_element_by_tag_name("input")
#<i class="icon-pic iconfont icon-mailbox_icon_addpic_1"></i>
time.sleep(2)
#ele.click()
print ("done")
ele.send_keys("C:\\CV\\Github\\Opencv_learning\\face\\pic.jpg")
time.sleep(5)
driver.find_element_by_id("btnPreview").click()
def test_search_in_python_org(self):
driver = self.driver
driver.get("http://t.cn/R9U4xwG")
#self.assertIn("Python", driver.title)
elem = driver.find_element_by_name("editor")
#????????
#elem.send_keys("???????")
#time.sleep(5)
#elem.clear()
#elem.send_keys(Keys.RETURN)
#assert "No results found." not in driver.page_source
ele=driver.find_element_by_tag_name("input")
#<i class="icon-pic iconfont icon-mailbox_icon_addpic_1"></i>
time.sleep(2)
#ele.click()
print ("done")
#????????????
ele.send_keys("C:\\CV\\Github\\Opencv_learning\\face\\pic.jpg")
time.sleep(5)
driver.find_element_by_id("btnPreview").click()
def miaomiao():
driver.get("http://t.cn/R9U4xwG")
#self.assertIn("Python", driver.title)
elem = driver.find_element_by_name("editor")
elem.send_keys("???????")
#time.sleep(5)
#elem.clear()
#elem.send_keys(Keys.RETURN)
#assert "No results found." not in driver.page_source
ele=driver.find_element_by_tag_name("input")
#<i class="icon-pic iconfont icon-mailbox_icon_addpic_1"></i>
time.sleep(2)
#ele.click()
print ("done")
ele.send_keys("C:\\CV\\Github\\Opencv_learning\\face\\pic.jpg")
time.sleep(3)
driver.find_element_by_id("btnPreview").click()
time.sleep(15)
def check_captcha(driver, condition):
""" Check if it expects a captcha """
captcha = driver.find_elements_by_css_selector("#captcha")
captcha += driver.find_elements_by_css_selector("#gs_captcha_f")
captcha += driver.find_elements_by_css_selector("#g-recaptcha")
captcha += driver.find_elements_by_css_selector("#recaptcha")
while captcha:
print("Ops. It requires a captcha!")
print("If you filled in the browser, type '<ok>' here.")
inp = input("Captcha: ")
if inp == "<ok>":
break
captcha[0].send_keys(inp)
captcha[0].send_keys(Keys.RETURN)
try:
if condition:
wait_for(driver, condition)
break
except TimeoutException:
captcha = driver.find_elements_by_css_selector("#captcha")
def sendMessage(msg, recepient_list):
for recep in recepient_list:
print ("Sending to : ",recep)
try:
one_chat = driver.find_element_by_xpath("//span[@title='%s']"%(recep))
except:
print ("Unable to find username [%s]"%recep)
continue
if one_chat != None:
try:
one_chat.click()
wait(1)
print ("Chatbox opened for ", recep)
text_box = driver.find_element_by_xpath("//div[@contenteditable='true']")
for letter in list(msg):
text_box.send_keys(letter)
wait(0.1)
text_box.send_keys(Keys.RETURN)
except:
print ("Unable to send msg [%s] to [%s]"%(msg, recep))
continue
print ("Message [%s] sent to [%s]"%(msg, recep))
def _map_ascii_key_code_to_key(self, key_code):
map = {
0: Keys.NULL,
8: Keys.BACK_SPACE,
9: Keys.TAB,
10: Keys.RETURN,
13: Keys.ENTER,
24: Keys.CANCEL,
27: Keys.ESCAPE,
32: Keys.SPACE,
42: Keys.MULTIPLY,
43: Keys.ADD,
44: Keys.SEPARATOR,
45: Keys.SUBTRACT,
56: Keys.DECIMAL,
57: Keys.DIVIDE,
59: Keys.SEMICOLON,
61: Keys.EQUALS,
127: Keys.DELETE
}
key = map.get(key_code)
if key is None:
key = chr(key_code)
return key
def login(self):
print "Loggin in"
driver.get('https://vtop.vit.ac.in/student/stud_login.asp')
time.sleep(0.5) # Let the user actually see something!
regno_el = driver.find_element_by_name('regno')
pwd_el = driver.find_element_by_name('passwd')
regno_el.send_keys(self.regno)
pwd_el.send_keys(self.pwd)
pwd_el.send_keys(Keys.RETURN)
time.sleep(1) # Let the user actually see something!
soup = BeautifulSoup(driver.page_source, "html.parser")
try:
x = ((soup.findAll('table')[1]).td.font.string.split(" - "))[1]
return x == self.regno
except:
return False
def login(self):
"""login to linkedin then wait 3 seconds for page to load"""
# Enter login credentials
WebDriverWait(self.driver, 120).until(
EC.element_to_be_clickable(
(By.ID, "session_key-login")
)
)
elem = self.driver.find_element_by_id("session_key-login")
elem.send_keys(self.username)
elem = self.driver.find_element_by_id("session_password-login")
elem.send_keys(self.password)
# Enter credentials with Keys.RETURN
elem.send_keys(Keys.RETURN)
# Wait a few seconds for the page to load
time.sleep(3)
def enter_search_keys(self):
"""
execute the job search by entering job and location information.
The location is pre-filled with text, so we must clear it before
entering our search.
"""
driver = self.driver
WebDriverWait(driver, 120).until(
EC.presence_of_element_located(
(By.ID, "keyword-search-box")
)
)
# Enter search criteria
elem = driver.find_element_by_id("keyword-search-box")
elem.send_keys(self.keyword)
# clear the text in the location box then enter location
elem = driver.find_element_by_id("location-search-box").clear()
elem = driver.find_element_by_id("location-search-box")
elem.send_keys(self.location)
elem.send_keys(Keys.RETURN)
time.sleep(3)
def authenticate(self, username, password):
"""Log in to Instagram with the provided credentials."""
print('\nLogging in…')
self.driver.get('https://www.instagram.com')
# Go to log in
login_link = WebDriverWait(self.driver, 5).until(
EC.presence_of_element_located((By.LINK_TEXT, 'Log in'))
)
login_link.click()
# Authenticate
username_input = self.driver.find_element_by_xpath(
'//input[@placeholder="Username"]'
)
password_input = self.driver.find_element_by_xpath(
'//input[@placeholder="Password"]'
)
username_input.send_keys(username)
password_input.send_keys(password)
password_input.send_keys(Keys.RETURN)
time.sleep(1)
def get_application(self, appname):
self.check_page_contains_error()
e = wait_for_xpath_presence(
self.driver, cfg_applications_xpath, be_clickable=True)
e.click()
e = wait_for_xpath_presence(self.driver, cfg_searchbox_xpath)
e.send_keys(appname)
e.send_keys(Keys.RETURN)
time.sleep(1)
self.driver.save_screenshot(join(
cfg_output_files_path,
"applications.png"))
app_xpath = "//a[contains (.,'" + appname + "')]"
e = wait_for_xpath_presence(self.driver, app_xpath)
e.click()
time.sleep(1)
logging.info("- Searched for application: {}".format(appname))
archivematicaselenium.py 文件源码
项目:archivematica-acceptance-tests
作者: artefactual-labs
项目源码
文件源码
阅读 20
收藏 0
点赞 0
评论 0
def login(self):
"""Login to Archivematica."""
self.driver.get(self.get_login_url())
username_input_id = 'id_username'
password_input_id = 'id_password'
try:
element_present = EC.presence_of_element_located(
(By.ID, username_input_id))
WebDriverWait(self.driver, self.timeout).until(element_present)
except TimeoutException:
print("Loading took too much time!")
username_elem = self.driver.find_element_by_id(username_input_id)
username_elem.send_keys(self.am_username)
password_elem = self.driver.find_element_by_id(password_input_id)
password_elem.send_keys(self.am_password)
submit_button_elem = self.driver.find_element_by_tag_name('button')
submit_button_elem.click()
# submit_button_elem.send_keys(Keys.RETURN)
def login(username,password):
print('logging in..')
element = browser.find_element_by_name('username')
element.clear()
element.send_keys(username)
element = browser.find_element_by_name('password')
element.clear()
element.send_keys(password)
element.send_keys(Keys.RETURN)
#check if the username and password are correct
loginTime=time.time()
while True:
if browser.current_url=='https://www.instagram.com/':
break
elif time.time()-loginTime>10: #if login takes more than 10 seconds, tell user that his internet is slow
print('Your Internet seems slow!\n',e)
browser.close()
sys.exit()
else:
try:
element=browser.find_element_by_xpath("//*[@id='slfErrorAlert']")
print('\n'+element.text)
print('Enter your credentials again!\n')
browser.close()
main()
sys.exit()
except:
#do nothing
pass
print('login complete')
def login(self, id, password):
self.browser.get(URL_LOG_IN)
time.sleep(2)
username_field = self.browser.find_element_by_id('username')
password_field = self.browser.find_element_by_id('password')
username_field.send_keys(id)
password_field.send_keys(password)
password_field.send_keys(Keys.RETURN)
def test_1089(self):
self.case_no = self.get_case_number()
self.log.info(' CASE %s log: ' % str(self.case_no))
self.driver.maximize_window()
self.driver.get(self.base_url)
self.driver.find_element_by_css_selector("a[href='/toastergui/projects/']").click()
self.driver.find_element_by_link_text('new-default-project').click()
self.driver.find_element_by_id('change-machine-toggle').click()
self.driver.find_element_by_id('machine-change-input').clear()
self.driver.find_element_by_id('machine-change-input').send_keys('qemuarm64')
# self.driver.find_element_by_id('machine-change-input').send_keys(Keys.RETURN)
self.driver.find_element_by_id('machine-change-btn').click()
con=sqlite.connect('toaster.sqlite')
cursor = con.cursor()
query = "select count(id) from orm_projectvariable where name like 'machine' and value like 'qemuarm64';"
cursor.execute(query)
data = cursor.fetchone()[0]
self.failUnless(data == 1)
#resetting machine to default value
self.driver.find_element_by_id('change-machine-toggle').click()
self.driver.find_element_by_id('machine-change-input').clear()
self.driver.find_element_by_id('machine-change-input').send_keys('qemux86')
self.driver.find_element_by_id('machine-change-input').send_keys(Keys.RETURN)
self.driver.find_element_by_id('machine-change-btn').click()
##############
# CASE 1090 #
##############
def login(user, password, delay):
try:
print 'Trying with password: ' + password
elem = driver.find_element_by_name("username")
elem.clear()
elem.send_keys(user)
elem = driver.find_element_by_name("password")
elem.clear()
elem.send_keys(password)
elem.send_keys(Keys.RETURN)
sleep(delay)
assert (("Login") in driver.title)
#assert (("Your username or password was incorrect" or "son incorrectos.") not in driver.page_source)
#if driver.current_url == 'https://www.instagram.com/':
# print 'Password correct!'
# print '%s' %password
#else:
# print 'Wrong password'
except AssertionError:
print 'Access granted mother kaker!!'
print 'The password is: ' + password
try:
f = open('pwnedAccounts.txt','a')
except:
f = open('pwnedAccounts.txt','w')
f.write('username:'+user+'\npassword:'+password+'\n')
f.close()
driver.delete_all_cookies()
return 1
except:
print "\r Check your connection to the internet mother kaker\r"
def fetch(config, fileobj):
user, password = config
# use the user's regular firefox profile instead of a fresh temporary one.
# this is to avoid getting fingerprinted as a new device which generates
# annoying emails and asks for additional info. luckily this profile is
# cloned into a temporary directory, so we can change preferences without
# affecting the original copy.
profile = FirefoxProfile(_firefox_default_profile())
# disable a json viewer that's enabled by default in firefox 53+.
profile.set_preference('devtools.jsonview.enabled', False)
driver = Firefox(profile)
driver.get('https://venmo.com/account/sign-in/')
user_elem = driver.find_element_by_name('phoneEmailUsername')
user_elem.clear()
user_elem.send_keys(user.value)
password_elem = driver.find_element_by_name('password')
password_elem.clear()
password_elem.send_keys(password.value)
password_elem.send_keys(Keys.RETURN)
WebDriverWait(driver, 15).until(title_contains('Welcome'))
params = '?start_date=2009-01-01&end_date={}-01-01'.format(datetime.now().year + 1)
url = 'https://api.venmo.com/v1/transaction-history' + params
driver.get(url)
# validate json and raise ValueError on failure.
pre = driver.find_element_by_tag_name('pre').text
json.loads(pre)
driver.quit()
fileobj.write('{}\n'.format(user.value))
fileobj.write(pre)
def _download(config, tempdir):
cfg_user, cfg_pass, *cfg_security = config
driver = FirefoxDownloadDriver(tempdir, 'application/binary')
driver.get('https://www.citizensbankonline.com/efs/servlet/efs/login.jsp')
# Sign in
user = driver.find_element_by_id('UserID')
user.clear()
user.send_keys(cfg_user.value)
password = driver.find_element_by_id('currentpassword')
password.clear()
password.send_keys(cfg_pass.value)
password.send_keys(Keys.RETURN)
# Set an implicit wait (which defaults to 0) to save us from
# accessing elements before they are ready.
driver.implicitly_wait(30)
# Switch into the AJAX-created frame that contains the security question
# then answer it.
driver.switch_to.frame(driver.find_element_by_name('mainFrame'))
question_elem = driver.find_element_by_xpath("//label[@for='Response']")
answer_elem = driver.find_element_by_id('Response')
answer = _answer_security_question(question_elem.text, cfg_security)
answer_elem.send_keys(answer)
answer_elem.send_keys(Keys.RETURN)
balances = _read_balances(driver)
# Click "Download transactions", set options, and download.
download_elem = driver.find_element_by_class_name('account-transactions-download')
download_elem.click()
driver.find_element_by_xpath('.//option[normalize-space(.) = "All Dates"]').click()
driver.find_element_by_xpath('.//option[normalize-space(.) = "Comma Delimited"]').click()
# Selenium sometimes misclicks the download button, so just call its onclick javascript.
driver.execute_script('setFilterValues()')
csv_path = driver.grab_download('EXPORT.CSV', timeout_seconds=30)
driver.quit()
return csv_path, balances
def pressEnter(self, fieldObject):
fieldObject.send_keys(Keys.RETURN)
return fieldObject
def test_search_in_python_org(self):
driver=self.driver
driver.get("http://www.python.org")
self.assertIn("Python",driver.title)
elem=driver.find_element_by_name("q")
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found. " not in driver.page_source