本文整理汇总了Python中selenium.webdriver.firefox.webdriver.WebDriver.find_element_by_name方法的典型用法代码示例。如果您正苦于以下问题:Python WebDriver.find_element_by_name方法的具体用法?Python WebDriver.find_element_by_name怎么用?Python WebDriver.find_element_by_name使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类selenium.webdriver.firefox.webdriver.WebDriver
的用法示例。
在下文中一共展示了WebDriver.find_element_by_name方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: BaseLiveServerTestCase
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_name [as 别名]
class BaseLiveServerTestCase(LiveServerTestCase):
def setUp(self):
get_or_create_test_admin()
self.browser = WebDriver()
self.do_admin_login('test', 'test')
def tearDown(self):
self.browser.quit()
def do_admin_login(self, username, password):
self.browser.get('%s%s' % (self.live_server_url, '/admin/'))
username_input = self.browser.find_element_by_name("username")
username_input.send_keys(username)
password_input = self.browser.find_element_by_name("password")
password_input.send_keys(password)
self.browser.find_element_by_xpath('//input[@value="Log in"]').click()
def new_window(self, name='other'):
self.browser.execute_script('window.open("/admin/", "'+ name +'")')
self.browser.switch_to_window(self.browser.window_handles[1])
while self.warning_element() is False:
time.sleep(0.1)
self.browser.switch_to_window(self.browser.window_handles[0])
def press_space(self):
a = ActionChains(self.browser)
a.key_down(Keys.SPACE)
a.perform()
def wait_for_pages_loaded(self):
for win in self.browser.window_handles:
while self.warning_element() is False:
time.sleep(0.1)
示例2: BasicViewTests
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_name [as 别名]
class BasicViewTests(unittest.TestCase):
"""
Just visit all the views and make sure they look okay
"""
def setUp(self):
self.selenium = WebDriver()
self.live_server_url = LIVE_SERVER_URL
# login boilerplate blah
self.selenium.get(self.live_server_url + '/login')
username_input = self.selenium.find_element_by_name("username_or_email")
username_input.send_keys(ADMIN_USERNAME)
password_input = self.selenium.find_element_by_name("password")
password_input.send_keys(ADMIN_PASSWORD)
self.selenium.find_element_by_xpath('//button[@type="submit"]').click()
def test_home(self):
self.selenium.get(self.live_server_url + '/')
# two project links are there
self.selenium.find_element_by_link_text('1000 Genomes')
def test_project_home(self):
self.selenium.get(self.live_server_url + '/project/1kg')
def test_family_home(self):
self.selenium.get(self.live_server_url + '/project/1kg/family/HG1')
def tearDown(self):
self.selenium.quit()
示例3: HomeTestCase
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_name [as 别名]
class HomeTestCase(LiveServerTestCase):
def setUp(self):
self.browser = WebDriver()
self.browser.implicitly_wait(3)
def test_home(self):
self.browser.get('{0}{1}'.format(self.live_server_url,reverse('index')))
body = self.browser.find_element_by_tag_name('body')
self.assertIn('username', body.text)
user = ModelTestFactory.getUser(password='test')
username_input = self.browser.find_element_by_name("username")
username_input.send_keys(user.username)
password_input = self.browser.find_element_by_name("password")
password_input.send_keys('test')
self.browser.find_element_by_id('loginBtn').click()
示例4: TestGroup
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_name [as 别名]
class TestGroup(unittest.TestCase):
def setUp(self):
self.wd = WebDriver()
self.wd.implicitly_wait(60)
def test_create_group(self):
"""Validation of correct create test group"""
success = True
wd = self.wd
wd.get("http://localhost/addressbook/group.php")
wd.find_element_by_name("user").click()
wd.find_element_by_name("user").clear()
wd.find_element_by_name("user").send_keys("admin")
wd.find_element_by_id("LoginForm").click()
wd.find_element_by_name("pass").click()
wd.find_element_by_name("pass").clear()
wd.find_element_by_name("pass").send_keys("secret")
wd.find_element_by_css_selector("input[type=\"submit\"]").click()
wd.find_element_by_name("new").click()
wd.find_element_by_name("group_name").click()
wd.find_element_by_name("group_name").clear()
wd.find_element_by_name("group_name").send_keys("test")
wd.find_element_by_name("group_header").click()
wd.find_element_by_name("group_header").clear()
wd.find_element_by_name("group_header").send_keys("test")
wd.find_element_by_name("group_footer").click()
wd.find_element_by_name("group_footer").clear()
wd.find_element_by_name("group_footer").send_keys("test")
wd.find_element_by_name("submit").click()
wd.find_element_by_css_selector("div.msgbox").click()
wd.find_element_by_link_text("group page").click()
self.assertTrue(success)
def tearDown(self):
success = True
# We should delete all created test form
self.wd.find_element_by_link_text("groups").click()
self.wd.find_element_by_css_selector("span.group").click()
if not self.wd.find_element_by_name("selected[]").is_selected():
self.wd.find_element_by_name("selected[]").click()
self.wd.find_element_by_xpath("//div[@id='content']/form/input[5]").click()
self.wd.find_element_by_link_text("Logout").click()
self.assertTrue(success)
self.wd.quit()
示例5: test_overwrite
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_name [as 别名]
def test_overwrite(self):
driver2 = WebDriver()
self.selenium.get('%s%s' % (self.live_server_url, '/apka/1/'))
self.selenium.implicitly_wait(100)
edit_button1 = self.selenium.find_element_by_id('editButton1')
save_button1 = self.selenium.find_element_by_id('submitButton1')
edit_button1.click()
driver2.get('%s%s' % (self.live_server_url, '/apka/1/'))
driver2.implicitly_wait(100)
edit_button2 = driver2.find_element_by_id('editButton1')
save_button2 = driver2.find_element_by_id('submitButton1')
edit_button2.click()
driver2.implicitly_wait(100)
inputok = driver2.find_element_by_name('ok')
inputok.clear()
inputok.send_keys('0')
inputupr = driver2.find_element_by_name('upr')
inputupr.clear()
inputupr.send_keys('1')
save_button2.click()
alert = driver2.switch_to.alert
self.assertEqual(alert.text, "Zapisano dane")
alert.accept()
obwod = Obwod.objects.get(id=1)
self.assertEqual(obwod.otrzymanych_kart, 0)
self.assertEqual(obwod.uprawnionych, 1)
driver2.quit()
self.selenium.implicitly_wait(100)
inputok = self.selenium.find_element_by_name('ok')
inputok.clear()
inputok.send_keys('42')
inputupr = self.selenium.find_element_by_name('upr')
inputupr.clear()
inputupr.send_keys('1337')
save_button1.click()
alert = self.selenium.switch_to.alert
self.assertEqual(alert.text, u"Dane zmieniły się od ostatniego zapisu. Zapisujesz 1337, a ktoś inny zapisał 1")
alert.accept()
obwod = Obwod.objects.get(id=1)
self.assertEqual(obwod.otrzymanych_kart, 0)
self.assertEqual(obwod.uprawnionych, 1)
示例6: AnonymousUseCaseTests
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_name [as 别名]
class AnonymousUseCaseTests(LiveServerTestCase):
fixtures = ['user']
@classmethod
def setUpClass(self):
self.selenium = WebDriver()
super(AnonymousUseCaseTests, self).setUpClass()
self.timeout = 10
@classmethod
def tearDownClass(self):
super(AnonymousUseCaseTests, self).tearDownClass()
self.selenium.quit()
def test_login(self):
self.selenium.get('%s%s' % (self.live_server_url, '/login/'))
self.assertEquals(self.selenium.title, "Squire Learning Application")
username_input = self.selenium.find_element_by_name("username")
username_input.send_keys('super')
password_input = self.selenium.find_element_by_name("password")
password_input.send_keys('super')
self.selenium.find_element_by_xpath('//input[@value="Login"]').click()
WebDriverWait(self.selenium, self.timeout).until(
lambda driver: driver.find_element_by_tag_name('body'))
self.assertEquals(self.selenium.current_url,
'%s%s' % (self.live_server_url, '/hr/profile/'))
def test_unsuccessful_login(self):
self.selenium.get('%s%s' % (self.live_server_url, '/login/'))
self.assertEquals(self.selenium.title, "Squire Learning Application")
username_input = self.selenium.find_element_by_name("username")
username_input.send_keys('super')
password_input = self.selenium.find_element_by_name("password")
password_input.send_keys('duper')
self.selenium.find_element_by_xpath('//input[@value="Login"]').click()
WebDriverWait(self.selenium, self.timeout).until(
lambda driver: driver.find_element_by_tag_name('body'))
self.assertEquals(self.selenium.current_url,
'%s%s' % (self.live_server_url, '/login/'))
self.assertTrue(
self.selenium.page_source.find("Please try again.") > 0)
示例7: RegisterTest
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_name [as 别名]
class RegisterTest(LiveServerTestCase):
def setUp(self):
self.browser = WebDriver()
self.browser.implicitly_wait(5)
create_user('john','[email protected]','johnpassword')
steps_to_login(self.browser,self.live_server_url,'john','johnpassword')
def tearDown(self):
self.browser.quit()
def test_title(self):
open_page(self.browser, '/register/', self.live_server_url)
self.assertIn('Register Supernova', self.browser.title)
def steps_to_create_user(self,username,email,password):
open_page(self.browser, '/register/', self.live_server_url)
username_input = self.browser.find_element_by_name('username')
username_input.send_keys(username)
email_input = self.browser.find_element_by_name('email')
email_input.send_keys(email)
password_input = self.browser.find_element_by_name('password')
password_input.send_keys(password)
button_register = self.browser.find_element_by_name('submit')
button_register.click()
def test_register_correct(self):
self.steps_to_create_user('teste_django','[email protected]','teste_django')
register_correct_message = self.browser.find_element_by_tag_name('strong')
self.assertIn('thank you for registering!', register_correct_message.text)
def test_register_repeated_user(self):
self.steps_to_create_user('testedjangorepeated','[email protected]','testedjangorepeated')
self.steps_to_create_user('testedjangorepeated','[email protected]','testedjangorepeated')
register_repeated_message = self.browser.find_element_by_tag_name('li')
self.assertIn('User with this Username already exists.', register_repeated_message.text)
示例8: UITestCase
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_name [as 别名]
class UITestCase(LiveServerTestCase):
def use_xvfb(self):
from pyvirtualdisplay import Display
self.display = Display('xvfb',
visible=1,
size=(1280, 1024))
self.display.start()
self.driver = WebDriver()
def setUp(self):
try:
self.driver = WebDriver()
ui_is_not_available = False
except WebDriverException:
ui_is_not_available = True
if ui_is_not_available:
self.use_xvfb()
self.driver.implicitly_wait(10)
super(UITestCase, self).setUp()
def tearDown(self):
self.driver.quit()
if hasattr(self, 'display'):
self.display.stop()
super(UITestCase, self).tearDown()
def _process_login_form(self, username, password):
username_elmt = self.driver.find_element_by_name('username')
password_elmt = self.driver.find_element_by_name('password')
username_elmt.send_keys(username)
password_elmt.send_keys(password)
submit = self.driver.find_element_by_css_selector('form * button')
submit.click()
def _browse_to_url(self, url):
self.driver.get(self.live_server_url + url)
def find_anchor_by_url(self, url):
return self.driver.find_element_by_css_selector("[href='%s']" % url)
示例9: SeleniumTests
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_name [as 别名]
class SeleniumTests(LiveServerTestCase):
"""Base class for all Selenium test classes to inherit from"""
@classmethod
def setUpClass(self):
self.selenium = WebDriver()
self.selenium.implicitly_wait(3)
super(SeleniumTests, self).setUpClass()
@classmethod
def tearDownClass(self):
self.selenium.quit()
super(SeleniumTests, self).tearDownClass()
def setUp(self):
# Create a test user and admin account
self.user_name = 'SeleniumTestUser'
self.user_pass = 'test'
if User.objects.filter(username=self.user_name).count() == 0:
User.objects.create_user(self.user_name, '', self.user_pass).save()
self.admin_name = 'SeleniumAdministrativeUser'
self.admin_pass = 'test'
if User.objects.filter(username=self.admin_name).count() == 0:
User.objects.create_superuser(self.admin_name, '', self.admin_pass).save()
def tearDown(self):
self.selenium.delete_all_cookies()
def link_text_exists(self, link_text):
try:
self.selenium.find_element_by_link_text(link_text)
except NoSuchElementException:
return False
return True
def xpath_exists(self, xpath):
try:
self.selenium.find_element_by_xpath(xpath)
except NoSuchElementException:
return False
return True
def element_with_selector_exists(self, selector):
try:
self.selenium.find_element_by_css_selector(selector)
except NoSuchElementException:
return False
return True
def text_exists(self, text, xpath="//body"):
try:
element = self.selenium.find_element_by_xpath(xpath)
except NoSuchElementException:
return False
if text in element.text:
return True
else:
return False
def login(self, username, password):
# Go to the login page and try logging in with the provided credentials
self.selenium.get('%s' % self.live_server_url)
self.selenium.find_element_by_link_text('Log in').click()
username_input = self.selenium.find_element_by_name('username')
username_input.send_keys(username)
password_input = self.selenium.find_element_by_name('password')
password_input.send_keys(password)
self.selenium.find_element_by_class_name('submit').click()
def create_items_and_requests(self, x):
# Creates x number of items and requests
for i in xrange(x):
self.item = G(Item)
self.request = G(Request, item=self.item)
def create_generic_item(self):
# Quick helper in the absence of fixtures
item = G(Item, local_num=9999, part_class='parts class',
location='cart 8', description='test item', cfi='never',
company='A Business', part_num='X9X9', serial_num='8A',
asset_num='sample_num', notes='Testing')
return item
示例10: WebDriver
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_name [as 别名]
import time
success = True
wd = WebDriver()
wd.implicitly_wait(60)
def is_alert_present(wd):
try:
wd.switch_to_alert().text
return True
except:
return False
try:
wd.get("http://localhost/addressbook/")
wd.find_element_by_name("pass").click()
wd.find_element_by_name("pass").clear()
wd.find_element_by_name("pass").send_keys("secret")
wd.find_element_by_name("user").click()
wd.find_element_by_name("user").clear()
wd.find_element_by_name("user").send_keys("admin")
wd.find_element_by_css_selector("input[type=\"submit\"]").click()
wd.find_element_by_link_text("groups").click()
wd.find_element_by_name("new").click()
wd.find_element_by_name("group_name").click()
wd.find_element_by_name("group_name").clear()
wd.find_element_by_name("group_name").send_keys("new froup")
wd.find_element_by_name("group_header").click()
wd.find_element_by_name("group_header").clear()
wd.find_element_by_name("group_header").send_keys("new grope")
wd.find_element_by_name("group_footer").click()
示例11: ActivitySeleleniumTests
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_name [as 别名]
class ActivitySeleleniumTests(StaticLiveServerTestCase):
"""Selenium tests for the activity page"""
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if not settings.DEBUG:
settings.DEBUG = True
if not settings.TESTING:
settings.TESTING = True
def setUp(self):
"""Handles login and things"""
call_command('flush', interactive=False, verbosity=0) # Clears db
call_command('loaddata', 'groups', commit=False, verbosity=0)
call_command('loaddata', 'school', commit=False, verbosity=0)
call_command('loaddata', 'permissions', commit=False, verbosity=0)
call_command('loaddata', 'auth_users', commit=False, verbosity=0)
call_command('loaddata', 'student', commit=False, verbosity=0)
call_command('loaddata', 'advisor', commit=False, verbosity=0)
call_command('loaddata', 'coordinator', commit=False, verbosity=0)
call_command('loaddata', 'activityoptions', commit=False, verbosity=0)
call_command('loaddata', 'learningobjectiveoptions', commit=False, verbosity=0)
call_command('loaddata', 'sample_entries', commit=False, verbosity=0)
self.selenium = WebDriver()
self.selenium.set_window_size(1024, 800)
self.selenium.get('{0}/{1}'.format(self.live_server_url, ''))
self.selenium.find_element_by_xpath('//*[@id="djHideToolBarButton"]').click()
self.selenium.implicitly_wait(10)
self.selenium.find_element_by_link_text('Login').click()
# Click on the student button in the gateway
self.selenium.find_element_by_xpath('/html/body/center/md-content/div/div/div[1]/a').click()
self.selenium\
.find_element_by_xpath("//img[@src='/static/journal/activities/img"
"/journal_sign.png']")
super()
def tearDown(self):
self.selenium.quit()
super()
def test_activity_form_back(self):
"""make sure the back button works"""
self.selenium.find_element_by_xpath("/html/body/div[1]/div[2]/div/div[1]/div/div[2]/div/a").click()
self.selenium.find_element_by_name('activity_name').send_keys('Walking the cat')
self.selenium.find_element_by_name('activity_description').send_keys('Walking the cat around the neighborhood')
self.selenium.find_element_by_xpath('/html/body/div[1]/div[2]/div[1]/form/div[2]/div[2]/input').send_keys('02/07/1990')
self.selenium.find_element_by_xpath('//*[@id="id_activity_type"]/li[2]/label').click()
self.selenium.find_element_by_xpath('//*[@id="id_activity_type"]/li[3]/label').click()
self.selenium.find_element_by_xpath('//*[@id="id_learned_objective"]/li[6]/label').click()
self.selenium.find_element_by_name('activity_adviser').send_keys('Cat')
self.selenium.find_element_by_name('advisor_phone').send_keys('1234567890')
self.selenium.find_element_by_name('advisor_email').send_keys('[email protected]')
self.selenium.find_element_by_link_text('Back').click()
self.selenium\
.find_element_by_xpath("//img[@src='/static/journal/activities/img"
"/journal_sign.png']")
def test_activity_form_error(self):
"""Tests to check errors on the activity form"""
self.selenium.find_element_by_xpath("/html/body/div[1]/div[2]/div/div[1]/div/div[2]/div/a").click()
# self.selenium.find_element_by_name('activity_name').send_keys('')
self.selenium.find_element_by_name('activity_description').send_keys('Walking with huahua around the neighborhood')
self.selenium.find_element_by_xpath('/html/body/div[1]/div[2]/div[1]/form/div[2]/div[2]/input').send_keys('02/07/1990')
self.selenium.find_element_by_xpath('//*[@id="id_activity_type"]/li[2]/label').click()
self.selenium.find_element_by_xpath('//*[@id="id_activity_type"]/li[3]/label').click()
self.selenium.find_element_by_xpath('//*[@id="id_learned_objective"]/li[6]/label').click()
self.selenium.find_element_by_name('activity_adviser').send_keys('Cat')
self.selenium.find_element_by_name('advisor_phone').send_keys('1234567890')
self.selenium.find_element_by_name('advisor_email').send_keys('[email protected]')
self.selenium.find_element_by_xpath('/html/body/div[1]/div[2]/div[1]/form/div[6]/div/input').click()
self.selenium.find_element_by_name('activity_description').text
def test_activity_form(self):
"""Tests to ensure that activities page has all necessary elements."""
self.selenium.find_element_by_xpath("/html/body/div[1]/div[2]/div/div[1]/div/div[2]/div/a").click()
self.selenium.find_element_by_name('activity_name').send_keys('Walking the cat')
self.selenium.find_element_by_name('activity_description').send_keys('Walking the cat around the neighborhood')
self.selenium.find_element_by_xpath('/html/body/div[1]/div[2]/div[1]/form/div[2]/div[2]/input').send_keys('02/07/1990')
self.selenium.find_element_by_xpath('//*[@id="id_activity_type"]/li[2]/label').click()
self.selenium.find_element_by_xpath('//*[@id="id_activity_type"]/li[3]/label').click()
self.selenium.find_element_by_xpath('//*[@id="id_learned_objective"]/li[6]/label').click()
self.selenium.find_element_by_name('activity_adviser').send_keys('Cat')
self.selenium.find_element_by_name('advisor_phone').send_keys('1234567890')
self.selenium.find_element_by_name('advisor_email').send_keys('[email protected]')
self.selenium.find_element_by_xpath('/html/body/div[1]/div[2]/div[1]/form/div[6]/div/input').click()
self.selenium\
.find_element_by_xpath("//img[@src='/static/journal/activities/img"
"/journal_sign.png']")
body_text = self.selenium.find_element_by_tag_name('body').text
self.assertTrue('Walking the cat' in body_text)
self.assertTrue('Walking the cat around the neighborhood' in body_text)
示例12: UITestCase
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_name [as 别名]
class UITestCase(StaticLiveServerTestCase):
def use_xvfb(self):
from pyvirtualdisplay import Display
self.display = Display('xvfb',
visible=1,
size=(DISPLAY_WIDTH, DISPLAY_HEIGHT))
self.display.start()
self.driver = WebDriver()
def setUp(self):
try:
self.driver = WebDriver()
ui_is_not_available = False
except WebDriverException:
ui_is_not_available = True
if ui_is_not_available:
self.use_xvfb()
self.driver.set_window_size(DISPLAY_WIDTH, DISPLAY_HEIGHT)
self.driver.implicitly_wait(10)
clear_caches()
setup_for_ui_test()
super(UITestCase, self).setUp()
def tearDown(self):
self.driver.quit()
if hasattr(self, 'display'):
self.display.stop()
ContentType.objects.clear_cache()
super(UITestCase, self).tearDown()
def click(self, selector):
self.find(selector).click()
def click_when_visible(self, selector):
element = self.find(selector)
self.wait_until_visible(element)
element.click()
def find(self, selector):
return self.driver.find_element_by_css_selector(selector)
def find_name(self, name):
return self.driver.find_element_by_name(name)
def find_id(self, id):
return self.driver.find_element_by_id(id)
def is_visible(self, selector):
element = self.find(selector)
return element is not None and element.is_displayed()
def process_login_form(self, username, password):
username_elmt = self.wait_until_present('[name="username"]')
password_elmt = self.find_name('password')
username_elmt.send_keys(username)
password_elmt.send_keys(password)
self.click('form * button')
def browse_to_url(self, url):
self.driver.get(self.live_server_url + url)
def browse_to_instance_url(self, url, instance=None):
instance = instance if instance is not None else self.instance
self.driver.get('%s/%s/%s' % (self.live_server_url,
instance.url_name,
url))
def find_anchor_by_url(self, url):
return self.find("[href='%s']" % url)
def wait_until_present(self, selector, timeout=10):
"""
Wait until an element with CSS 'selector' exists on the page.
Useful for detecting that an operation loads the page you're expecting.
"""
element = [None] # use list so it can be set by inner scope
def is_present(driver):
element[0] = self.find(selector)
return element[0] is not None and element[0].is_displayed()
WebDriverWait(self.driver, timeout).until(is_present)
return element[0]
def wait_until_text_present(self, text, timeout=10):
"""
Wait until 'text' exists on the page.
Useful for detecting that an operation loads the page you're expecting.
"""
WebDriverWait(self.driver, timeout).until(
lambda driver: text in driver.page_source)
#.........这里部分代码省略.........
示例13: ProfessorTest
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_name [as 别名]
class ProfessorTest(LiveServerTestCase):
def setUp(self):
self.browser = WebDriver()
self.browser.implicitly_wait(1)
create_user_and_login(self.browser, self.live_server_url,'john','johnpassword','[email protected]')
self.name_professor = 'teste'
def tearDown(self):
[professor.delete() for professor in Professor.find()]
self.browser.quit()
def create_professor(self,professor_name):
open_page(self.browser, '/interface/professor', self.live_server_url)
button_create_professor = self.browser.find_element_by_name('criar')
button_create_professor.click()
self.assertIn('Interface - Professor Create', self.browser.title)
form_name = self.browser.find_element_by_id('id_name')
form_name.send_keys(professor_name)
form_memberId = self.browser.find_element_by_id('id_memberId')
form_memberId.send_keys('00000')
form_office = self.browser.find_element_by_id('id_office')
form_office.send_keys('0')
form_email = self.browser.find_element_by_id('id_email')
form_email.send_keys('0')
form_phoneNumber = self.browser.find_element_by_id('id_phoneNumber')
form_phoneNumber.send_keys('0')
form_cellphoneNumber = self.browser.find_element_by_id('id_cellphoneNumber')
form_cellphoneNumber.send_keys('0')
form_idDepartment = self.browser.find_element_by_id('id_idDepartment')
form_idDepartment.send_keys('')
button_submit = self.browser.find_element_by_name('Cadastrar')
button_submit.click()
def test_login_to_interface_page(self):
self.assertIn('Index', self.browser.title)
link_interface = self.browser.find_element_by_link_text('Interface')
link_interface.click()
self.assertIn('Interface', self.browser.title)
def test_login_to_professor_page(self):
open_page(self.browser, '/interface/', self.live_server_url)
professor_interface = self.browser.find_element_by_link_text('Professor')
professor_interface.click()
self.assertIn('Interface - Professor', self.browser.title)
def test_create_professor(self):
self.create_professor(self.name_professor)
open_page(self.browser, '/interface/professor', self.live_server_url)
professor_name_link = self.browser.find_element_by_link_text(self.name_professor)
self.assertIsNotNone(professor_name_link)
def test_edit_professor(self):
professor = Professor(self.name_professor)
professor.store()
open_page(self.browser, '/interface/professor', self.live_server_url)
professor_name_link = self.browser.find_element_by_link_text(self.name_professor)
professor_name_link.click()
self.assertIn('Interface - Professor Detail', self.browser.title)
button_edit = self.browser.find_element_by_name('editar')
button_edit.click()
self.assertIn('Interface - Professor Edit', self.browser.title)
form_name = self.browser.find_element_by_id('id_name')
form_name.send_keys('Edit')
form_memberId = self.browser.find_element_by_id('id_memberId')
form_memberId.send_keys('')
form_office = self.browser.find_element_by_id('id_office')
form_office.send_keys('')
form_email = self.browser.find_element_by_id('id_email')
form_email.send_keys('')
form_phoneNumber = self.browser.find_element_by_id('id_phoneNumber')
form_phoneNumber.send_keys('0')
form_cellphoneNumber = self.browser.find_element_by_id('id_cellphoneNumber')
form_cellphoneNumber.send_keys('0')
form_idDepartment = self.browser.find_element_by_id('id_idDepartment')
form_idDepartment.send_keys('')
button_apply = self.browser.find_element_by_name('Aplicar')
button_apply.click()
open_page(self.browser, '/interface/professor', self.live_server_url)
professor_name_link_after_edit = self.browser.find_element_by_link_text(self.name_professor + 'Edit')
professor_name_link_after_edit.click()
list_professor_info = self.browser.find_elements_by_tag_name('p')
self.assertEqual(list_professor_info[1].text, 'Member ID: 0')
self.assertEqual(list_professor_info[2].text, 'Office: None')
self.assertEqual(list_professor_info[3].text, 'Email: None')
self.assertEqual(list_professor_info[4].text, 'Phone Number: 0')
self.assertEqual(list_professor_info[5].text, 'CellPhone Number: 0')
self.assertEqual(list_professor_info[6].text, 'Id Department: None')
def test_delete_professor(self):
professor = Professor(self.name_professor)
professor.store()
open_page(self.browser, '/interface/professor', self.live_server_url)
professor_name_link = self.browser.find_element_by_link_text(self.name_professor)
professor_name_link.click()
self.assertIn('Interface - Professor Detail', self.browser.title)
button_delete = self.browser.find_element_by_name('deletar')
button_delete.click()
alert = self.browser.switch_to.alert
alert.accept()
#.........这里部分代码省略.........
示例14: ScriptTestCase
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_name [as 别名]
class ScriptTestCase(LiveServerTestCase):
def setUp(self):
self.browser = WebDriver()
self.do_admin_login('test', 'test')
def tearDown(self):
self.browser.quit()
def do_admin_login(self, username, password):
self.browser.get('%s%s' % (self.live_server_url, '/admin/'))
username_input = self.browser.find_element_by_name("username")
username_input.send_keys(username)
password_input = self.browser.find_element_by_name("password")
password_input.send_keys(password)
self.browser.find_element_by_xpath('//input[@value="Log in"]').click()
def new_window(self, name='other'):
self.browser.execute_script('window.open("/admin/", "'+ name +'")')
self.browser.switch_to_window(self.browser.window_handles[1])
while self.warning_element() is False:
time.sleep(0.1)
self.browser.switch_to_window(self.browser.window_handles[0])
def press_space(self):
a = ActionChains(self.browser)
a.key_down(Keys.SPACE)
a.perform()
def warning_element(self):
try:
return self.browser.find_elements_by_css_selector(
'#session_security_warning')[0]
except IndexError:
return False
def wait_for_pages_loaded(self):
for win in self.browser.window_handles:
while self.warning_element() is False:
time.sleep(0.1)
def deadline_passed(self, now, deadline):
return (datetime.now() - now).seconds > deadline
def assertWarningShows(self, max_seconds):
now = datetime.now()
for win in self.browser.window_handles:
self.browser.switch_to_window(win)
while self.warning_element() is False:
time.sleep(0.1)
if self.deadline_passed(now, max_seconds):
self.fail('Warning did not make it into DOM')
for win in self.browser.window_handles:
self.browser.switch_to_window(win)
while self.warning_element().is_displayed() is False:
time.sleep(0.1)
if self.deadline_passed(now, max_seconds):
self.fail('Warning did not make it into DOM')
def assertWarningHides(self, max_seconds):
now = datetime.now()
for win in self.browser.window_handles:
self.browser.switch_to_window(win)
while self.warning_element().is_displayed() is not False:
time.sleep(0.1)
if self.deadline_passed(now, max_seconds):
self.fail('Warning did not hide')
def assertExpires(self, max_seconds):
now = datetime.now()
for win in self.browser.window_handles:
self.browser.switch_to_window(win)
while self.warning_element() is not False:
time.sleep(0.1)
if self.deadline_passed(now, max_seconds):
self.fail('Warning did not make it out of DOM')
def assertWarningShown(self):
for win in self.browser.window_handles:
self.browser.switch_to_window(win)
self.assertTrue(self.warning_element().is_displayed())
def assertWarningHidden(self):
for win in self.browser.window_handles:
self.browser.switch_to_window(win)
self.assertFalse(self.warning_element().is_displayed())
def assertWarningNotInPage(self):
for win in self.browser.window_handles:
#.........这里部分代码省略.........
示例15: BaseStoreTest
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_name [as 别名]
class BaseStoreTest(StaticLiveServerTestCase):
def by_id(self, id):
return self.selenium.find_element_by_id(id)
def by_css(self, selector: str, multiple: bool = False):
if multiple:
return self.selenium.find_elements_by_css_selector(selector)
else:
return self.selenium.find_element_by_css_selector(selector)
def setUp(self):
self.selenium = WebDriver()
self.selenium.implicitly_wait(SELENIUM_WAIT_SEC)
user = create_user(TEST_USER, TEST_PASSWORD, TEST_EMAIL)
user.firstname = 'live'
user.lastname = 'test'
user.save()
def tearDown(self):
try:
delete_user(TEST_USER)
except Exception:
pass
super().tearDown()
self.selenium.quit()
def go_to(self, url_name: str, kwargs: Dict[str, str] = None) -> None:
app_url = reverse(url_name, kwargs=kwargs)
self.selenium.get('%s%s' % (self.live_server_url, app_url))
def go_to_app(self, app_id):
self.go_to('app-detail', {'id': app_id})
def go_to_app_register(self):
self.go_to('app-register')
def go_to_app_upload(self):
self.go_to('app-upload')
def go_to_login(self):
self.selenium.get('%s%s' % (self.live_server_url, '/login/'))
def login(self, user: str = TEST_USER, password: str = TEST_PASSWORD):
self.go_to_login()
user_input = self.selenium.find_element_by_name("login")
user_input.send_keys(user)
pass_input = self.selenium.find_element_by_name("password")
pass_input.send_keys(password)
self.selenium.find_element_by_xpath('//button[@type="submit"]').click()
def assert_can_not_login(self):
self.go_to('home')
self.go_to_login()
self.by_id('id_login').clear()
self.by_id('id_login').send_keys('livetest')
self.by_id('id_password').clear()
self.by_id('id_password').send_keys('livetest')
self.by_css('.auth-form button[type="submit"]').click()
error = self.by_css('.auth-form .text-danger')
self.assertTrue(error.is_displayed())
self.assertOnPage('account_login')
def logout(self):
self.findNavigationLink('account_logout').click()
def wait_for(self, selector: str,
then: Callable[[WebElement], None]) -> Any:
element = WebDriverWait(self.selenium, SELENIUM_WAIT_SEC).until(
EC.visibility_of_element_located((By.CSS_SELECTOR, selector)))
return then(element)
def wait_for_url(self, url: str) -> Any:
WebDriverWait(self.selenium, SELENIUM_WAIT_SEC).until(
EC.url_contains(url)
)
def assertOnPage(self, url_name: str,
kwargs: Dict[str, str] = None) -> None:
parsed = urlparse(self.selenium.current_url)
url = reverse(url_name, kwargs=kwargs)
self.assertEqual(url, parsed.path)
def findNavigationLink(self, url_name: str,
kwargs: Dict[str, str] = None):
route = reverse(url_name, kwargs=kwargs)
return self.by_css('#navbar a[href="%s"]' % route)