说明
本文参考答案基于Chrome,分辨率1920*1080,在其他环境表现可能会不同。
本文代码地址
- 参考书籍下载:
Learning Selenium Testing Tools with Python-2014.pdf
Selenium自动化测试 基于 Python 语言 - 2018.pdf
上机实操: 在新的TAB打开连接
- 打开:https://china-testing.github.io/
- 选择"数据分析"栏目的文章
- 按住"Ctrl+TAB"选择"python"栏目的文章
- 切换到新的标签"python"
- 关闭新的标签"python"
- 关闭浏览器
参考答案
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 讨论钉钉免费群21745728 qq群144081101 567351477
# CreateDate: 2018-10-17
import time
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("https://china-testing.github.io/")
driver.implicitly_wait(30)
driver.maximize_window()
element = driver.find_element_by_link_text('数据分析')
element.click()
time.sleep(3)
element = driver.find_element_by_link_text('python')
ActionChains(driver).key_down(Keys.CONTROL).click(element).key_up(
Keys.CONTROL).perform()
time.sleep(3)
driver.switch_to.window(driver.window_handles[1])
time.sleep(3)
driver.close() # 关闭当前TAB
time.sleep(3)
driver.quit()
- 面试问答
- driver.quit() 和 driver.close()有什么区别?
2.selenium中按下和松开键如何表示?
3.简述ActionChains类的作用?
上机实操: 验证悬浮提示内容
- 鼠标移动到上图的"Your age:"
- 确认悬浮提示内容为'We ask for your age only for statistical purposes.'
关闭浏览器
- 参考答案
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 讨论钉钉免费群21745728 qq群144081101 567351477
# CreateDate: 2018-10-17
import unittest
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.action_chains import ActionChains
class ToolTipTest (unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.get("http://jqueryui.com/tooltip/")
self.driver.implicitly_wait(30)
self.driver.maximize_window()
def test_tool_tip(self):
driver = self.driver
frame_elm = driver.find_element_by_class_name('demo-frame')
driver.switch_to.frame(frame_elm)
time.sleep(3)
age_field = driver.find_element_by_id('age')
ActionChains(self.driver).move_to_element(age_field).perform()
time.sleep(3)
tool_tip_elm = WebDriverWait(self.driver, 10).until(
expected_conditions.visibility_of_element_located((
By.CLASS_NAME, 'ui-tooltip-content')))
# verify tooltip message
self.assertEqual('We ask for your age only for statistical purposes.',
tool_tip_elm.text)
time.sleep(3)
def tearDown(self):
self.driver.close()
if __name__ == '__main__':
unittest.main(verbosity=2)
- 面试问答
1.move_to_element()有什么用途?
上机实操: 双击改变颜色
双击上图蓝色的框,把颜色该变成黄色
- 参考答案
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 讨论钉钉免费群21745728 qq群144081101 567351477
# CreateDate: 2018-10-18
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import unittest
class DoubleClickTest (unittest.TestCase):
URL = 'http://api.jquery.com/dblclick/'
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.get(self.URL)
self.driver.maximize_window()
def test_double_click(self):
driver = self.driver
frame = driver.find_element_by_tag_name('iframe')
driver.switch_to.frame(frame)
box = driver.find_element_by_tag_name('div')
# verify color is Blue
self.assertEqual('rgba(0, 0, 255, 1)',
box.value_of_css_property('background-color'))
ActionChains(driver).move_to_element(
driver.find_element_by_tag_name('body')).perform()
ActionChains(driver).double_click(box).perform()
# verify Color is Yellow
self.assertEqual('rgba(255, 255, 0, 1)',
box.value_of_css_property('background-color'))
def tearDown(self):
self.driver.close()
if __name__ == '__main__':
unittest.main(verbosity=2)
- 面试问答
1.double_click()有什么用途?
2.rgba的含义?
上机实操: 在新的TAB打开连接
- 拖动左边的框到右边
参考答案
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 讨论钉钉免费群21745728 qq群144081101 567351477
# CreateDate: 2018-10-18
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import unittest
class DragAndDropTest (unittest.TestCase):
URL = 'http://jqueryui.com/resources/demos/droppable/default.html'
def setUp(self) :
self.driver = webdriver.Chrome()
self.driver.get(self.URL)
self.driver.maximize_window()
def test_drag_and_drop(self):
driver = self.driver
source = driver.find_element_by_id('draggable')
target = driver.find_element_by_id('droppable')
ActionChains(self.driver).drag_and_drop(source, target).perform()
self.assertEqual('Dropped!', target.text)
def tearDown(self):
self.driver.close()
if __name__ == '__main__':
unittest.main(verbosity=2)
- 面试问答
1.drag_and_drop()有什么用途?
参考资料
- 讨论 钉钉群21745728 qq群144081101 567351477
- 本文最新版本地址
- 本文涉及的python测试开发库 谢谢点赞!
- 本文相关海量书籍下载