本文整理汇总了Python中staxing.helper.Teacher.find_all方法的典型用法代码示例。如果您正苦于以下问题:Python Teacher.find_all方法的具体用法?Python Teacher.find_all怎么用?Python Teacher.find_all使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类staxing.helper.Teacher
的用法示例。
在下文中一共展示了Teacher.find_all方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: TestEditCourseSettingsAndRoster
# 需要导入模块: from staxing.helper import Teacher [as 别名]
# 或者: from staxing.helper.Teacher import find_all [as 别名]
#.........这里部分代码省略.........
existing_driver=self.teacher.driver,
pasta_user=self.ps,
capabilities=self.desired_capabilities
)
admin.login()
admin.get('https://tutor-qa.openstax.org/admin/courses/1/edit')
admin.page.wait_for_page_load()
teacher_name = 'Trent'
admin.find(
By.XPATH, '//a[contains(text(),"Teachers")]').click()
admin.find(
By.ID, 'course_teacher').send_keys(teacher_name)
admin.wait.until(
expect.visibility_of_element_located(
(By.XPATH, '//li[contains(text(),"%s")]' % teacher_name)
)
).click()
admin.sleep(1)
admin.find(
By.LINK_TEXT, 'Main Dashboard').click()
admin.page.wait_for_page_load()
admin.logout()
# redo set-up, but make sure to go to course 1
self.teacher.login()
self.teacher.get('https://tutor-qa.openstax.org/courses/1')
self.teacher.open_user_menu()
self.teacher.wait.until(
expect.element_to_be_clickable(
(By.LINK_TEXT, 'Course Settings and Roster')
)
).click()
self.teacher.page.wait_for_page_load()
# delete teacher
teachers_list = self.teacher.find_all(
By.XPATH, '//div[@class="teachers-table"]//tbody//tr')
for x in range(len(teachers_list)):
temp_first = self.teacher.find(
By.XPATH,
'//div[@class="teachers-table"]//tbody//tr[' +
str(x + 1) + ']/td'
).text
if temp_first == teacher_name:
self.teacher.find(
By.XPATH,
'//div[@class="teachers-table"]//tbody//tr[' +
str(x + 1) + ']//td//span[contains(text(),"Remove")]'
).click()
self.teacher.sleep(1)
self.teacher.find(
By.XPATH, '//div[@class="popover-content"]//button'
).click()
break
if x == len(teachers_list) - 1:
print('added teacher was not found, and not deleted')
raise Exception
deleted_teacher = self.teacher.driver.find_elements(
By.XPATH, '//td[contains(text(),"%s")]' % teacher_name)
assert(len(deleted_teacher) == 0), 'teacher not deleted'
self.ps.test_updates['passed'] = True
# Case C8260 - 003 - Teacher | Remove the last instructor from the course
@pytest.mark.skipif(str(8260) not in TESTS, reason='Excluded')
def test_teacher_remove_the_last_instructor_from_the_course_8260(self):
"""Remove the last instructor from the course.
示例2: TestCreateNewQuestionAndAssignmentTypes
# 需要导入模块: from staxing.helper import Teacher [as 别名]
# 或者: from staxing.helper.Teacher import find_all [as 别名]
#.........这里部分代码省略.........
# Test steps and verification assertions
# create a hw with a multi part question, and gice it a randomized name
# ID: [email protected] is multi part
self.teacher.login()
self.teacher.find(
By.XPATH,
'//div[@data-appearance="intro_sociology"]' +
'//a[not(contains(@href,"/cc-dashboard"))]'
).click()
assignment_name = "homework-%s" % randint(100, 999)
today = datetime.date.today()
begin = (today + datetime.timedelta(days=0)).strftime('%m/%d/%Y')
end = (today + datetime.timedelta(days=100)).strftime('%m/%d/%Y')
self.teacher.add_assignment(
assignment='homework',
args={
'title': assignment_name,
'description': 'description',
'periods': {'all': (begin, end)},
'problems': {'1.1': ['[email protected]'], },
'status': 'publish',
}
)
self.teacher.open_user_menu()
self.teacher.find(
By.LINK_TEXT, 'Student Scores'
).click()
self.teacher.page.wait_for_page_load()
# can just click the first review because assignemnt just created
# and should be the most recent one
self.teacher.find(
By.LINK_TEXT, 'Review'
).click()
cards = self.teacher.find_all(
By.XPATH, '//div[contains(@class,"card-body")]')
questions = self.teacher.find_all(
By.XPATH, '//div[contains(@class,"openstax-question")]')
breadcrumbs = self.teacher.find_all(
By.XPATH, '//span[contains(@class,"openstax-breadcrumb")]')
assert(len(questions) == len(breadcrumbs)), \
'breadcrumbs and questions not equal'
assert(len(cards) < len(breadcrumbs)), \
'multipart question card has multiple questions,' + \
'not matching up with breadcrumbs'
self.ps.test_updates['passed'] = True
# NOT DONE
# same issue as above w/ add_homework helper
# but works for manually created assignemnt
# (add assignemnt gets commented out, manual assignemnt name added)
# 14744 - 005 - Student | Each part of a multi-part question counts as a
# seperate problem when scored
@pytest.mark.skipif(str(14744) not in TESTS, reason='Excluded')
def test_student_each_part_of_a_multipart_question_counts_as_14744(self):
"""Multi-part questions count as seperate problems when scored.
Steps:
Go to Tutor
Click on the 'Login' button
Log in as abarnes
Click "College Introduction to Sociology"
Click on a homework assignment
Go through the questions
Expected Result:
示例3: TestViewClassPerformance
# 需要导入模块: from staxing.helper import Teacher [as 别名]
# 或者: from staxing.helper.Teacher import find_all [as 别名]
#.........这里部分代码省略.........
).click()
self.teacher.wait.until(
expect.visibility_of_element_located(
(By.CLASS_NAME, 'no-data-message')
)
)
# Archive the new period as clean up
self.teacher.open_user_menu()
self.teacher.find(
By.LINK_TEXT, 'Course Settings and Roster'
).click()
self.teacher.wait.until(
expect.visibility_of_element_located((
By.LINK_TEXT, period_name)
)
).click()
self.teacher.find(
By.XPATH, "//a[@class='control archive-period']").click()
self.teacher.find(
By.XPATH,
"//button[@class='async-button archive-section btn btn-default']"
).click()
self.ps.test_updates['passed'] = True
# Case C8154 - 007 - Teacher | Weaker areas shows up to
# four problematic sections
@pytest.mark.skipif(str(8154) not in TESTS, reason='Excluded')
def test_teacher_weaker_shows_up_to_four_problematic_sections_8154(self):
"""Weaker areas shows up to four problematic sections.
Steps:
On the calendar dashboard, click on the "Performance Forecast"
button on the upper right corner of the calendar OR
click on the user drop down menu
click on the "Performance Forecast" button
Click on the desired period
Expected Result:
Weaker Areas show up to four problematic sections
"""
self.ps.test_updates['name'] = 't1.22.007' \
+ inspect.currentframe().f_code.co_name[4:]
self.ps.test_updates['tags'] = [
't1',
't1.22',
't1.22.007',
'8154'
]
self.ps.test_updates['passed'] = False
# Test steps and verification assertion
assert('guide' in self.teacher.current_url()), \
'Not viewing performance forecast'
weak = self.teacher.find_all(
By.XPATH,
"//div[@class='chapter-panel weaker']/div[@class='sections']/div")
assert(len(weak) <= 4), \
'Not viewing performance forecast'
self.ps.test_updates['passed'] = True
# Case C8155 - 008 - Teacher | Chapters are listed on the left with
# their sections to the right
@pytest.mark.skipif(str(8155) not in TESTS, reason='Excluded')
def test_teacher_chapters_listed_on_left_w_sections_on_right_8155(self):
"""Chapter are listed on the left with their sections to the right.
Steps:
On the calendar dashboard, click on the "Performance Forecast"
button on the upper right corner of the calendar
OR
Click on the user drop down menu
Click on the "Performance Forecast" button
Click on the desired period
Scroll to the "Individual Chapters" section
Expected Result:
Chapters are listed on the left with their sections to the right
"""
self.ps.test_updates['name'] = 't1.22.008' \
+ inspect.currentframe().f_code.co_name[4:]
self.ps.test_updates['tags'] = [
't1',
't1.22',
't1.22.008',
'8155'
]
self.ps.test_updates['passed'] = False
# Test steps and verification assertions
assert('guide' in self.teacher.current_url()), \
'Not viewing performance forecast'
self.teacher.page.wait_for_page_load()
panels = self.teacher.find_all(By.CLASS_NAME, 'chapter-panel')
for panel in panels:
panel.find_elements_by_class_name('chapter')
panel.find_elements_by_class_name('sections')
self.ps.test_updates['passed'] = True
示例4: TestStudentsWorkAssignments
# 需要导入模块: from staxing.helper import Teacher [as 别名]
# 或者: from staxing.helper.Teacher import find_all [as 别名]
class TestStudentsWorkAssignments(unittest.TestCase):
"""CC1.08 - Students Work Assignments."""
def setUp(self):
"""Pretest settings."""
self.ps = PastaSauce()
self.desired_capabilities['name'] = self.id()
self.teacher = Teacher(
username=os.getenv('TEACHER_USER_CC'),
password=os.getenv('TEACHER_PASSWORD'),
pasta_user=self.ps,
capabilities=self.desired_capabilities
)
self.teacher.login()
if 'cc-dashboard' not in self.teacher.current_url():
courses = self.teacher.find_all(
By.CLASS_NAME,
'tutor-booksplash-course-item'
)
assert(courses), 'No courses found.'
if not isinstance(courses, list):
courses = [courses]
course_id = randint(0, len(courses) - 1)
self.course = courses[course_id].get_attribute('data-title')
self.teacher.select_course(title=self.course)
self.teacher.goto_course_roster()
try:
section = self.teacher.find_all(
By.XPATH,
'//*[contains(@class,"nav-tabs")]//a'
)
if isinstance(section, list):
section = '%s' % section[randint(0, len(section) - 1)].text
else:
section = '%s' % section.text
except Exception:
section = '%s' % randint(100, 999)
self.teacher.add_course_section(section)
self.code = self.teacher.get_enrollment_code(section)
print('Course Phrase: ' + self.code)
self.book_url = self.teacher.find(
By.XPATH, '//a[span[contains(text(),"Online Book")]]'
).get_attribute('href')
self.teacher.find(By.CSS_SELECTOR, 'button.close').click()
self.teacher.sleep(0.5)
self.teacher.logout()
self.teacher.sleep(1)
self.student = Student(use_env_vars=True,
existing_driver=self.teacher.driver)
self.first_name = Assignment.rword(6)
self.last_name = Assignment.rword(8)
self.email = self.first_name + '.' \
+ self.last_name \
+ '@tutor.openstax.org'
def tearDown(self):
"""Test destructor."""
self.ps.update_job(
job_id=str(self.teacher.driver.session_id),
**self.ps.test_updates
)
try:
self.teacher.delete()
except:
pass
# Case C7691 - 001 - Student | Selects an exercise answer
@pytest.mark.skipif(str(7691) not in TESTS, reason='Excluded')
def test_student_select_an_exercise_answer_7691(self):
"""Select an exercise answer."""
self.ps.test_updates['name'] = 'cc1.08.001' \
+ inspect.currentframe().f_code.co_name[4:]
self.ps.test_updates['tags'] = [
'cc1',
'cc1.08',
'cc1.08.001',
'7691'
]
self.ps.test_updates['passed'] = False
# Test steps and verification assertions
self.student.get(self.book_url)
self.student.sleep(2)
self.student.find_all(By.XPATH, '//a[@class="nav next"]')[0].click()
self.student.page.wait_for_page_load()
try:
widget = self.student.find(By.ID, 'coach-wrapper')
except:
self.student.find_all(By.XPATH,
'//a[@class="nav next"]')[0].click()
self.student.page.wait_for_page_load()
try:
self.student.sleep(1)
widget = self.student.find(By.ID, 'coach-wrapper')
except:
self.student.find_all(By.XPATH,
'//a[@class="nav next"]')[0].click()
self.student.page.wait_for_page_load()
self.student.sleep(1)
widget = self.student.find(By.ID, 'coach-wrapper')
#.........这里部分代码省略.........
示例5: TestImproveLoginRegistrationEnrollment
# 需要导入模块: from staxing.helper import Teacher [as 别名]
# 或者: from staxing.helper.Teacher import find_all [as 别名]
class TestImproveLoginRegistrationEnrollment(unittest.TestCase):
"""CC2.09 - Improve Login, Registration, Enrollment."""
def setUp(self):
"""Pretest settings."""
self.ps = PastaSauce()
self.desired_capabilities['name'] = self.id()
self.teacher = Teacher(
use_env_vars=True,
pasta_user=self.ps,
capabilities=self.desired_capabilities
)
self.student = Student(
use_env_vars=True,
existing_driver=self.teacher.driver,
pasta_user=self.ps,
capabilities=self.desired_capabilities
)
def tearDown(self):
"""Test destructor."""
self.ps.update_job(
job_id=str(self.teacher.driver.session_id),
**self.ps.test_updates
)
try:
self.student.delete()
except:
pass
try:
self.teacher.delete()
except:
pass
def get_enrollemnt_code(self, number=0):
"""
Steps:
Sign in as teacher
Click on a Concept Coach course
Click on "Course Settings and Roster" from the user menu
Click "Your Student Enrollment Code"
Return value: code, enrollemnt_url
code - enrollment code
enrollemnt_url - url of book for course
"""
self.teacher.login()
if number != 0:
cc_courses = self.teacher.find_all(
By.XPATH, '//a[contains(@href,"/cc-dashboard")]'
)
cc_courses[number].click()
else:
self.teacher.find(
By.XPATH, '//a[contains(@href,"/cc-dashboard")]'
).click()
self.teacher.open_user_menu()
self.teacher.find(
By.LINK_TEXT, 'Course Settings and Roster'
).click()
self.teacher.find(
By.XPATH, '//span[contains(text(),"Your student enrollment code")]'
).click()
self.teacher.sleep(1)
code = self.teacher.find(
By.XPATH, '//p[@class="code"]'
).text
enrollement_url = self.teacher.find(
By.XPATH, '//textarea'
).text
enrollement_url = enrollement_url.split('\n')[5]
self.teacher.find(
By.XPATH, '//button[@class="close"]'
).click()
self.teacher.sleep(0.5)
self.teacher.logout()
return code, enrollement_url
def create_user(self, start_num, end_num):
"""
creates a new user and return the username
"""
self.student.get("http://accounts-qa.openstax.org")
num = str(randint(start_num, end_num))
self.student.find(By.LINK_TEXT, 'Sign up').click()
self.student.find(
By.ID, 'identity-login-button').click()
self.student.find(
By.ID, 'signup_first_name').send_keys('first_name_001')
self.student.find(
By.ID, 'signup_last_name').send_keys('last_name_001')
self.student.find(
By.ID, 'signup_email_address').send_keys('[email protected]')
self.student.find(
By.ID, 'signup_username').send_keys('automated_09_'+num)
self.student.find(
By.ID, 'signup_password'
).send_keys(os.getenv('STUDENT_PASSWORD'))
self.student.find(
By.ID, 'signup_password_confirmation'
#.........这里部分代码省略.........
示例6: TestImprovesScoresReporting
# 需要导入模块: from staxing.helper import Teacher [as 别名]
# 或者: from staxing.helper.Teacher import find_all [as 别名]
#.........这里部分代码省略.........
raise Exception
self.ps.test_updates['passed'] = True
# 14814 - 011 - Teacher | Green check icon is displayed for completed
# assignments
@pytest.mark.skipif(str(14814) not in TESTS, reason='Excluded')
def test_teacher_green_check_icon_is_displayed_for_completed_14814(self):
"""Green check icon is displayed for completed assignments.
Steps:
If the user has more than one course, click on a CC course name
Click "View Detailed Scores
Expected Result:
Green check icon is displayed for completed assignments
"""
self.ps.test_updates['name'] = 'cc2.08.011' \
+ inspect.currentframe().f_code.co_name[4:]
self.ps.test_updates['tags'] = ['cc2', 'cc2.08', 'cc2.08.011', '14814']
self.ps.test_updates['passed'] = False
# Test steps and verification assertions
self.teacher.wait.until(
expect.visibility_of_element_located(
(By.XPATH, '//a[contains(text(),"View Detailed Scores")]')
)
).click()
self.teacher.wait.until(
expect.visibility_of_element_located(
(By.XPATH, '//span[contains(text(),"Student Scores")]')
)
)
# scroll to find a green checkmark
assignments = self.teacher.find_all(
By.XPATH,
"//span[contains(@aria-describedby,'header-cell-title')]")
for i in range(len(assignments)//4):
try:
self.teacher.find(
By.XPATH,
'//span[contains(@class,"trig")]' +
'//*[contains(@class,"finished")]')
break
except (NoSuchElementException, ElementNotVisibleException):
if i >= (len(assignments)//4)-1:
print("completed assignments for this period")
raise Exception
# try to drag scroll bar instead of scrolling
scroll_bar = self.teacher.find(
By.XPATH,
'//div[contains(@class,"ScrollbarLayout_faceHorizontal")]')
actions = ActionChains(self.teacher.driver)
actions.move_to_element(scroll_bar)
actions.click_and_hold()
actions.move_by_offset(50, 0)
actions.release()
actions.perform()
self.ps.test_updates['passed'] = True
# 14815 - 012 - Teacher | The class average info icon displays a definition
# about scores from completed assignments
@pytest.mark.skipif(str(14815) not in TESTS, reason='Excluded')
def test_teacher_class_average_info_icon_displays_definition_14815(self):
"""The class average info icon displays a definition.