本文整理汇总了Python中selenium.webdriver.Firefox.find_element_by_name方法的典型用法代码示例。如果您正苦于以下问题:Python Firefox.find_element_by_name方法的具体用法?Python Firefox.find_element_by_name怎么用?Python Firefox.find_element_by_name使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类selenium.webdriver.Firefox
的用法示例。
在下文中一共展示了Firefox.find_element_by_name方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: login
# 需要导入模块: from selenium.webdriver import Firefox [as 别名]
# 或者: from selenium.webdriver.Firefox import find_element_by_name [as 别名]
def login(username, password):
"""Login into website, return cookies, api and sso token using geckodriver/firefox headless"""
display = Display(visible=0, size=(800, 600))
display.start()
# options = Options()
# options.add_argument('-headless')
# driver = Firefox(executable_path='/usr/local/bin/geckodriver', firefox_options=options)
driver = Firefox()
wait = WebDriverWait(driver, timeout=10)
driver.get(url)
time.sleep(10)
username_field = driver.find_element_by_name("emailOrPcrNumber")
# There are multiple entries with the name pin, use the xpath instead even though it is more error prone
# password_field = driver.find_element_by_name("pin")
password_field = driver.find_element_by_xpath('/html/body/div[1]/div/div/div[2]/div[1]/div[2]/form/div/div[1]/div[2]/input')
username_field.clear()
username_field.send_keys(username)
password_field.clear()
password_field.send_keys(password)
time.sleep(2)
driver.find_element_by_id("tpiSubmitButton").click()
time.sleep(3)
cookies = driver.get_cookies()
for cookie in cookies:
if cookie['name'] == 'X-IHG-SSO-TOKEN':
sso_token = cookie['value']
api_key = driver.execute_script('return AppConfig.featureToggle.apiKey')
driver.get('https://apis.ihg.com')
cookies.extend(driver.get_cookies())
driver.quit()
display.stop()
return api_key, sso_token, cookies
示例2: TestMaxlifeFeature
# 需要导入模块: from selenium.webdriver import Firefox [as 别名]
# 或者: from selenium.webdriver.Firefox import find_element_by_name [as 别名]
class TestMaxlifeFeature(object):
"""
Checks if the maxlife feature is working
"""
def setup_class(self):
"""
Setup: Open a mozilla browser, login
"""
self.browser = Firefox()
self.browser.get('http://localhost:5000/')
token = self.browser.find_element_by_name("token")
password = "foo"
# login
token.send_keys(password)
token.send_keys(Keys.ENTER)
time.sleep(.1)
try:
self.browser.find_element_by_xpath("//input[@value='Logout']")
except NoSuchElementException:
raise ValueError("Can't login!!! Create a user 'foo' with the permissions"
"'read' and 'write' in your PERMISSIONS in the config")
def teardown_class(self):
"""
Tear down: Close the browser
"""
self.browser.quit()
def test_unit_input_exists(self):
unit_input = self.browser.find_element_by_name("maxlife-unit")
assert unit_input is not None
value_input = self.browser.find_element_by_name("maxlife-value")
assert value_input is not None
def fill_form(self):
paste_input = self.browser.find_element_by_id("formupload")
paste_input.send_keys("This is test")
filename_input = self.browser.find_element_by_id("filename")
filename_input.send_keys("test.txt")
contenttype_input = self.browser.find_element_by_id("contenttype")
contenttype_input.send_keys("text/plain")
contenttype_input.send_keys(Keys.ENTER)
def delete_current_file(self):
self.browser.find_element_by_id("del-btn").click()
time.sleep(.2)
self.browser.find_element_by_class_name("btn-primary").click()
def test_paste_keep_forever(self):
self.browser.find_element_by_xpath("//select[@name='maxlife-unit']/option[@value='forever']").click()
value_input = self.browser.find_element_by_name("maxlife-value")
value_input.clear()
value_input.send_keys(1)
self.fill_form()
assert "max life" not in self.browser.find_element_by_tag_name("body").text.lower()
self.delete_current_file()
def test_paste_keep_minutes(self):
self.browser.find_element_by_xpath("//select[@name='maxlife-unit']/option[@value='minutes']").click()
value_input = self.browser.find_element_by_name("maxlife-value")
value_input.clear()
value_input.send_keys(1)
self.fill_form()
assert "max time" in self.browser.find_element_by_tag_name("body").text.lower()
self.delete_current_file()
@pytest.mark.slow
def test_file_gets_deleted(self):
self.browser.find_element_by_xpath("//select[@name='maxlife-unit']/option[@value='minutes']").click()
value_input = self.browser.find_element_by_name("maxlife-value")
value_input.clear()
value_input.send_keys(1)
self.fill_form()
time.sleep(61)
self.browser.find_element_by_id("inline-btn").click()
assert "not found" in self.browser.find_element_by_tag_name("body").text.lower()
示例3: Firefox
# 需要导入模块: from selenium.webdriver import Firefox [as 别名]
# 或者: from selenium.webdriver.Firefox import find_element_by_name [as 别名]
from selenium.webdriver import Firefox
#!
driver = Firefox()
driver.get('https://github.com')
#!
search_box = driver.find_element_by_name('q')
#!
search_box.send_keys('txtorcon')
#!
search_box.submit()
#!
found_repos = driver.find_elements_by_class_name(
'repo-list-name'
)
#!
repo_names = [div.text for div in found_repos]
#!
assert 'meejah/txtorcon' in repo_names
示例4: NewTrainingData
# 需要导入模块: from selenium.webdriver import Firefox [as 别名]
# 或者: from selenium.webdriver.Firefox import find_element_by_name [as 别名]
class NewTrainingData(LiveServerTestCase) :
def setUp(self) :
# TODO setup lists with test data here, and make the 2 methods user_sees and check_entered accept these lists
self.browser = Firefox()
self.browser.implicitly_wait(3)
def tearDown(self) :
self.browser.quit()
def user_sees_inputfields_and_enters_data(self, distance, executed_time, in_zone, average_heart_rate) :
# user sees 4 edit boxes to enter distance, executed time, in zone and average HR
distance_editbox = self.browser.find_element_by_name('distance')
self.assertIsNotNone(distance_editbox)
executed_time_editbox = self.browser.find_element_by_name('executed_time')
self.assertIsNotNone(executed_time_editbox)
in_zone_editbox = self.browser.find_element_by_name('in_zone')
self.assertIsNotNone(in_zone_editbox)
average_heart_rate_editbox = self.browser.find_element_by_name('average_heart_rate')
self.assertIsNotNone(average_heart_rate_editbox)
# TODO: user sees km, bpm, .... next to the edit boxes
# user sees a submit button with the text 'submit' on it
submit_button = self.browser.find_element_by_id('submit_button')
self.assertEqual(submit_button.get_attribute('value'), 'submit')
# user enters data in the 4 fields an presses submit
# TODO : user sees he gets redirected to the same home url
distance_editbox.send_keys(distance)
executed_time_editbox.send_keys(executed_time)
in_zone_editbox.send_keys(in_zone)
average_heart_rate_editbox.send_keys(average_heart_rate)
submit_button.submit()
def check_entered_data_on_screen(self, data) :
# user sees a table and an entry in a table on the page with the entered data
try :
table_rows = self.browser.find_elements_by_tag_name('tr')
except StaleElementReferenceException :
# wait for all the elements to be attached to the DOM (stale exception selenium)
self.browser.implicitly_wait(3)
table_rows = self.browser.find_elements_by_tag_name('tr')
# user checks if the number of rows entered equals the number of rows displayed in the table
self.assertEqual(len(table_rows), len(data), 'not all data records are in the DB')
for table_row in table_rows :
self.assertIn(table_row.text, data, 'runners record wrong data or not in DB')
def test_enter_training_data(self) :
# user gets the url
self.browser.get(self.live_server_url)
# user enters a first set of data and checks if the data is receptioned by the system
self.user_sees_inputfields_and_enters_data('9', '00:46:48', '00:38:42', '162')
# user sees the row in the table on the page matching the data entered
self.check_entered_data_on_screen(['9.0 0:46:48 0:38:42 162'])
# user enters a second set of data checks if the data is receptioned by the system
self.user_sees_inputfields_and_enters_data('14.182', '01:08:53', '00:52:23', '159')
# user sees both rows in the table on the page matching the data from the second training session
self.check_entered_data_on_screen(['9.0 0:46:48 0:38:42 162', '14.182 1:08:53 0:52:23 159'])
# user closes the browser and reopens, to see his previously entered data
self.tearDown()
self.setUp()
# user gets the url
self.browser.get(self.live_server_url)
self.check_entered_data_on_screen(['9.0 0:46:48 0:38:42 162', '14.182 1:08:53 0:52:23 159'])
def test_web_page_is_loaded(self) :
# user gets the url
self.browser.get(self.live_server_url)
# user sees the title in the browser window
self.assertIn('Runners Log', self.browser.title)
示例5: defaultdict
# 需要导入模块: from selenium.webdriver import Firefox [as 别名]
# 或者: from selenium.webdriver.Firefox import find_element_by_name [as 别名]
cal_eligibility = defaultdict(Counter)
final = {}
delay = 3
opts = Options()
browser = Firefox(options=opts)
link = True
for season in seasons:
draft_results_url = DRAFTRESULTS_BASE_URL.format(*season)
browser.get(draft_results_url)
while link:
sleep(delay)
current_url = browser.current_url.split('&')[0]
link = current_url != draft_results_url
try:
username_login_box = browser.find_element_by_name("username")
username_login_box.send_keys(username)
except NoSuchElementException:
print('No username element') # log
try:
password_login_box = browser.find_element_by_name("password")
password_login_box.send_keys(password)
except NoSuchElementException:
print('No password element') # log
try:
button = browser.find_element_by_id("login-signin")
button.click()
except NoSuchElementException:
print('No button element')