键盘选项卡导航的自动测试

时间:2014-06-04 22:34:50

标签: python selenium selenium-webdriver webdriver uiaccessibility

我的网页支持键盘导航,按下" TAB"按键开关按特定顺序聚焦在网页项目上。按下焦点项目上的Enter键可打开弹出/选择该项目。

我的自动化测试用例是: 1.在网站上按Tab键,确认正确的项目是焦点。 2.按下聚焦项目上的Enter键,确认显示弹出窗口。 3.按下聚焦项目上的Enter键并确认它已被选中。

from selenium.webdriver.common.keys import Keys
# Qs: I want to test that the first time I press TAB key, the logo is in focus.          
# Currently. I am unable to achieve that without finding that element.
# How do I include the first element in the test?
first = self.driver.find_element_by_id("logo")
# The following code tabs to the second item on the page and brings it in focus. 
# Qs: How do I test that this item is in focus?
first.send_keys(Keys.TAB)
# How do I tab to the third item on the page without saving the second item 
# in a variable?
# Do I need to find the element in focus in order to select it by sending the 
# RETURN key?

感谢您的帮助

3 个答案:

答案 0 :(得分:1)

您可以从 html 正文标记开始:

driver.find_element_by_tag_name("body")

或:

driver.find_element_by_id("logo") # and then...
driver.switch_to_default_content()

现在您可以尝试单击TAB。

要测试对元素的关注,您只需点击它,如果在结果中出现新窗口 - 您可以在 .window_handles 中查看,例如:

print browser.window_handles

答案 1 :(得分:0)

您可以使用execute_script()测试焦点,并测试document.activeElement

这样的内容将返回当前处于活动状态的网络元素:

second = self.driver.execute_script("return document.activeElement")

答案 2 :(得分:0)

要在不保存变量中的前一个元素的情况下标记元素,可以使用ActionChains actions = ActionChains(driver) actions.send_keys(Keys.TAB) actions.perform()

在循环中选中,直到您想要聚焦的元素为焦点。您可以通过查找当前活动元素并再次按Tab键(如果它不等于您要标签的元素)来执行此操作:https://stackoverflow.com/a/17026711/4163398