本文整理汇总了Python中selenium.webdriver.firefox.webdriver.WebDriver.find_element_by_id方法的典型用法代码示例。如果您正苦于以下问题:Python WebDriver.find_element_by_id方法的具体用法?Python WebDriver.find_element_by_id怎么用?Python WebDriver.find_element_by_id使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类selenium.webdriver.firefox.webdriver.WebDriver
的用法示例。
在下文中一共展示了WebDriver.find_element_by_id方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: FunctionalSearchTest
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_id [as 别名]
class FunctionalSearchTest(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 settings.TEST_HEADLESS or ui_is_not_available:
self.use_xvfb()
self.driver.implicitly_wait(10)
super(FunctionalSearchTest, self).setUp()
def tearDown(self):
self.driver.quit()
if hasattr(self, "display"):
self.display.stop()
super(FunctionalSearchTest, self).tearDown()
def test_simple_homepage_address_search_redirect(self):
self.driver.get(self.live_server_url)
input = self.driver.find_element_by_id("vc-search-input")
input.send_keys("foobar\r")
summary = self.driver.find_element_by_id("result-description")
self.assertEqual(summary.text, 'No results for "foobar"')
示例2: __init__
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_id [as 别名]
class Base:
@classmethod
def __init__(self, p_live_server_url):
self.live_server_url = p_live_server_url
self.driver = WebDriver()
@classmethod
def pause(self, p_seconds):
try:
WebDriverWait(self.driver, p_seconds).until(EC.title_is('pause'))
except:
pass
@classmethod
def grid_cell_doubleclick(self, p_element):
ActionChains(self.driver).double_click(p_element).perform()
@classmethod
def grid_cell_input(self, p_element, p_text):
self.grid_cell_doubleclick(p_element)
for k in range(0, len(p_element.text)):
p_element.send_keys(Keys.BACKSPACE)
p_element.send_keys(p_text)
@classmethod
def action_login(self, p_username, p_password, p_expectsuccess=True):
self.driver.get('{0}{1}'.format(self.live_server_url, '/login/'))
WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.TAG_NAME, 'body')))
username_input = self.driver.find_element_by_id('txt_user')
username_input.send_keys(p_username)
password_input = self.driver.find_element_by_id('txt_pwd')
password_input.send_keys(p_password)
self.driver.find_element_by_xpath("//button[. = 'Sign in']").click()
if p_expectsuccess:
try:
WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, 'header')))
except:
WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located((By.CLASS_NAME, 'div_alert_text')))
else:
try:
WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located((By.CLASS_NAME, 'div_alert_text')))
except:
WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, 'header')))
@classmethod
def action_create_user(self, p_username, p_password, p_superuser):
self.driver.get('{0}{1}'.format(self.live_server_url, '/users/'))
WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.TAG_NAME, 'body')))
assert 'OmniDB' in self.driver.title
self.driver.find_element_by_xpath("//button[. = 'New User']").click()
username_cell = self.driver.find_element_by_xpath("//tbody/tr[last()]/td[1]")
self.grid_cell_input(username_cell, p_username)
password_cell = self.driver.find_element_by_xpath("//tbody/tr[last()]/td[2]")
self.grid_cell_input(password_cell, p_password)
if p_superuser:
superuser_cell = self.driver.find_element_by_xpath("//tbody/tr[last()]/td[3]")
self.grid_cell_doubleclick(superuser_cell)
self.driver.find_element_by_tag_name('body').click()
self.driver.find_element_by_xpath("//button[. = 'Save Data']").click()
示例3: HomeTestCase
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_id [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: work
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_id [as 别名]
def work(pid):
print('Starting %s' % str(pid))
wd = WebDriver()
wd.set_window_size(1280, 1000)
wd.implicitly_wait(15)
try:
wd.get("http://trumpdonald.org/")
while True:
wd.find_element_by_id("can").click()
finally:
raise Exception("Test exited. pid=%s" % str(pid))
wd.quit()
return None
示例5: test_overwrite
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_id [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: LoginTest
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_id [as 别名]
class LoginTest(unittest.TestCase):
def setUp(self):
self.driver = WebDriver()
def tearDown(self):
self.driver.quit()
def test_can_login(self):
self.driver.get(LOGIN_PAGE_URL)
login_form = self.driver.find_element_by_id("login")
assert_that(login_form.is_displayed(), equal_to(True))
示例7: decline_offer
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_id [as 别名]
def decline_offer(offer_reference):
driver = WebDriver()
# Login
selenium_login(webdriver=driver)
# Decline offer
driver.get('https://www.odesk.com/applications/%s' % offer_reference)
driver.find_element_by_id("declineButton").click()
driver.find_element_by_css_selector("option[value=\"146\"]").click()
driver.find_element_by_id("otherReason").clear()
driver.find_element_by_id("otherReason").send_keys("Test")
driver.find_element_by_xpath("(//a[contains(text(),'Decline')])[2]").click()
driver.close()
示例8: add_odesk_teams
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_id [as 别名]
def add_odesk_teams(user):
"""
Creates oDesk teams that will be used for our jobs.
"""
driver = WebDriver()
driver.implicitly_wait(time_to_wait=10)
selenium_login(webdriver=driver)
account = user.get_profile()
# Gain access to settings
driver.find_element_by_css_selector("a.oNavIcon.oNavIconSettings").click()
driver.find_element_by_id("answer").clear()
driver.find_element_by_id("answer").send_keys(settings.ODESK_TEST_ACC_ANSWER)
driver.find_element_by_id("submitButton").click()
sg_name = SAMPLE_GATHERING_TEAM % TEAM_PREFIX
v_name = VOTING_TEAM % TEAM_PREFIX
btmg_name = BTM_GATHERING_TEAM % TEAM_PREFIX
btmv_name = BTM_VOTING_TEAM % TEAM_PREFIX
sg_res = add_odesk_team(webdriver=driver, name=sg_name)
v_res = add_odesk_team(webdriver=driver, name=v_name)
btmg_res = add_odesk_team(webdriver=driver, name=btmg_name)
btmv_res = add_odesk_team(webdriver=driver, name=btmv_name)
if not all([sg_res, v_res, btmg_res, btmv_res]):
log.warning('[oDesk] Failed to create oDesk teams.')
return False
client = make_client_from_account(account)
teams = client.hr.get_teams()
for team in teams:
if team['name'] == sg_name:
account.odesk_teams[JOB_SAMPLE_GATHERING_KEY] = team['reference']
elif team['name'] == v_name:
account.odesk_teams[JOB_VOTING_KEY] = team['reference']
elif team['name'] == btmg_name:
account.odesk_teams[JOB_BTM_GATHERING_KEY] = team['reference']
elif team['name'] == btmv_name:
account.odesk_teams[JOB_BTM_VOTING_KEY] = team['reference']
account.save()
return True
示例9: WebDriver
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_id [as 别名]
# -*- coding: utf-8 -*-
from selenium.webdriver.firefox.webdriver import WebDriver
from selenium.webdriver.common.action_chains import ActionChains
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/php4dvd/")
wd.find_element_by_id("username").click()
wd.find_element_by_id("username").clear()
wd.find_element_by_id("username").send_keys("admin")
wd.find_element_by_name("password").click()
wd.find_element_by_name("password").clear()
wd.find_element_by_name("password").send_keys("admin")
wd.find_element_by_name("submit").click()
finally:
wd.quit()
if not success:
raise Exception("Test failed.")
示例10: WebDriver
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_id [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:8000/accounts/login/?next=/")
wd.find_element_by_id("id_username").click()
wd.find_element_by_id("id_username").clear()
wd.find_element_by_id("id_username").send_keys("admin")
wd.find_element_by_id("id_password").click()
wd.find_element_by_id("id_password").clear()
wd.find_element_by_id("id_password").send_keys("admin")
wd.find_element_by_xpath("//form[@class='form-signin']/button").click()
wd.find_element_by_xpath("//div/div[1]/div[2]/div/div[2]/div/ul/li[1]/a").click()
wd.find_element_by_xpath("//div/div[1]/div[2]/div/div[2]/div/ul/li[1]/ul/li[2]/a").click()
wd.find_element_by_xpath("//div[2]/div[1]/div[2]/div/div[2]/div/ul/li[1]/a").click()
wd.find_element_by_xpath("//div[2]/div[1]/div[2]/div/div[2]/div/ul/li[1]/ul/li[1]/a").click()
wd.find_element_by_id("id_nombre_usuario").click()
wd.find_element_by_id("id_nombre_usuario").clear()
wd.find_element_by_id("id_nombre_usuario").send_keys("Nuevo Usuario2")
wd.find_element_by_id("id_password").click()
wd.find_element_by_id("id_password").clear()
示例11: UITestCase
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_id [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()
# I believe this line is no longer necessary, but I'm leaving it here
# until the UI tests have run many times without deadlocking.
# -RM 20140522
#self.kill_pending_transactions()
super(UITestCase, self).tearDown()
def kill_pending_transactions(self):
# The super.tearDown sometimes hangs when truncating tables
# because of lingering pending transactions with locks on those tables.
# Kill them to avoid deadlock!
try:
dbname = settings.DATABASES['default']['NAME']
sql = "select pg_terminate_backend(procpid)" + \
" from pg_stat_activity where datname='%s'" % dbname + \
" and current_query='<IDLE> in transaction';"
connection.cursor().execute(sql)
except InterfaceError:
# Sometimes we get "connection already closed"
pass
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 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 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
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(
#.........这里部分代码省略.........
示例12: UITestCase
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_id [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 click(self, selector):
self.find(selector).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 process_login_form(self, username, password):
username_elmt = self.find_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 find_anchor_by_url(self, url):
return self.find("[href='%s']" % url)
def wait_until_enabled(self, element, timeout=10):
def isPresentAndEnabled(driver):
return element.get_attribute("disabled") is None
WebDriverWait(self.driver, timeout).until(isPresentAndEnabled)
def wait_until_visible(self, element, timeout=10):
def isPresentAndEnabled(driver):
return element.is_displayed()
WebDriverWait(self.driver, timeout).until(isPresentAndEnabled)
示例13: WebDriver
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_id [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://b11test4a.mentoringmindsonline.com/mysdb_m3_test4/_design/mys/mmloginw.html")
wd.find_element_by_id("loginUserID").click()
wd.find_element_by_id("loginUserID").clear()
wd.find_element_by_id("loginUserID").send_keys("113177")
wd.find_element_by_id("userPasswd").click()
wd.find_element_by_id("userPasswd").clear()
wd.find_element_by_id("userPasswd").send_keys("Ctfl*5258")
wd.find_element_by_id("sign-in").click()
wd.find_element_by_id("reportsBigBtnBtn").click()
wd.find_element_by_id("selectReportTypeW").click()
wd.find_element_by_id("dijit_MenuItem_30_text").click()
wd.find_element_by_id("dijit_MenuItem_39_text").click()
wd.find_element_by_id("dijit_MenuItem_92_text").click()
wd.find_element_by_id("generateReportBtn").click()
wd.find_element_by_css_selector("#dojox_mobile_ToolBarButton_34 > span.mblToolBarButtonBody.mblColorDefault > table.mblToolBarButtonText > tbody > tr > td.mblToolBarButtonLabel").click()
wd.find_element_by_css_selector("#dojox_mobile_ToolBarButton_4 > span.mblToolBarButtonBody.mblColorDefault > table.mblToolBarButtonText > tbody > tr > td.mblToolBarButtonLabel").click()
wd.find_element_by_css_selector("td.mblToolBarButtonLabel").click()
示例14: ProfessorTest
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_id [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()
#.........这里部分代码省略.........
示例15: BaseSeleniumPoolStatsTestCase
# 需要导入模块: from selenium.webdriver.firefox.webdriver import WebDriver [as 别名]
# 或者: from selenium.webdriver.firefox.webdriver.WebDriver import find_element_by_id [as 别名]
class BaseSeleniumPoolStatsTestCase(BasePoolStatsTestCase):
def setUp(self):
self.vdisplay = Xvfb(width=1280, height=1024)
self.vdisplay.start()
self.selenium = WebDriver()
super(BaseSeleniumPoolStatsTestCase, self).setUp()
def tearDown(self):
self.selenium.quit()
self.vdisplay.stop()
super(BaseSeleniumPoolStatsTestCase, self).tearDown()
def score_sheet_create(self,
match_id=BasePoolStatsTestCase.DEFAULT_TEST_MATCH_ID,
week_id=BasePoolStatsTestCase.DEFAULT_TEST_WEEK_ID):
self.selenium.get('{}week/{}'.format(self.base_url, week_id))
self.selenium.find_element_by_id('score_sheet_create_button_match_{}'.format(match_id)).click()
def populate_lineup(self, away_players=4, home_players=4):
# get the lineup form, set the first player to 1, second to 2, etc
for location_name in location_names:
# first, make sure the form you are about to interact with is visible, to avoid a
# selenium.common.exceptions.ElementNotInteractableException being thrown.
self.selenium.find_element_by_id('toggle-{}_lineup'.format(location_name)).click()
lineup_form = self.selenium.find_element_by_id('{}_lineup'.format(location_name))
# referring to away_players and home_players only via eval() makes them look unused ...
for inc in range(0, eval('{}_players'.format(location_name))):
select = Select(lineup_form.find_element_by_id('id_form-{}-player'.format(inc)))
select.select_by_index(inc + 1) # 'inc + 1' as the first option in the select is '------' or similar
# submit the form
self.selenium.find_element_by_id('{}_lineup_save'.format(location_name)).click()
def set_substitution(self, away_home, game_index, player_index=1, substitution_index=0):
self.selenium.find_element_by_id('toggle-{}_substitutions'.format(away_home)).click()
substitution_form = self.selenium.find_element_by_id('{}_substitutions'.format(away_home))
game_select = Select(substitution_form.find_element_by_id('id_form-{}-game_order'.format(substitution_index)))
if game_index is not None:
game_select.select_by_index(game_index)
player_select = Select(substitution_form.find_element_by_id('id_form-{}-player'.format(substitution_index)))
# select the 1th player; zero is '------' or similar
player_select.select_by_index(player_index)
selected_player = player_select.first_selected_option
self.selenium.find_element_by_id('{}_substitutions_save'.format(away_home)).click()
return selected_player
def set_winners(self, forfeits=0, table_runs=0, random_wins=True):
games_form = self.selenium.find_element_by_name('score_sheet_games_form')
# hard-coding game count here, is there a way to not do that?
# id_form-1-winner_0
win_counts = {
'home': 0,
'away': 0,
}
forfeit_games = []
tr_games = []
for inc in range(0, 16):
# choose whether home (0) or away (1) wins "randomly"
if random_wins:
winner = randrange(0, 2)
else:
winner = inc % 2
win_counts[location_names[winner]] += 1
button = games_form.find_element_by_id('id_form-{}-winner_{}'.format(inc, winner))
button.click()
# set some forfeits!
while len(forfeit_games) < forfeits:
candidate = randrange(0, 16)
while candidate in forfeit_games:
candidate = randrange(0, 16)
forfeit_games.append(candidate)
while len(tr_games) < table_runs:
candidate = randrange(0, 16)
while candidate in forfeit_games or candidate in tr_games:
candidate = randrange(0, 16)
tr_games.append(candidate)
for forfeit_game in forfeit_games:
games_form.find_element_by_id('id_form-{}-forfeit'.format(forfeit_game)).click()
for tr_game in tr_games:
games_form.find_element_by_id('id_form-{}-table_run'.format(tr_game)).click()
games_form.find_element_by_id('games-save-button').click()
return win_counts
@staticmethod
def count_player_stats_in_table(table):
player_rows = table.find_elements_by_xpath('tbody/tr')
wins = 0
losses = 0
trs = 0
for player_row in player_rows:
player_cells = player_row.find_elements_by_tag_name('td')
wins += int(player_cells[3].text)
losses += int(player_cells[4].text)
#.........这里部分代码省略.........