【发布时间】:2019-12-19 12:59:42
【问题描述】:
我有一个网站,是否需要验证打印功能。我点击了网站上的打印图标,它为我打开了一个带有打印预览页面的新窗口。在此页面中,我需要单击打印图标。下面是我尝试使用机器人框架 + Python 的代码
Sampleprint.robot
*** Settings ***
Library Selenium2Library
Library printfunc.py
*** Test Case ***
Validate Downloads Page Title
Open Browser http://samplewebsite.com chrome
wait until page contains element //*[@id="introduction-container"] 10s
keypress
sleep 4s
${output}= Get Title Present Under Shadow Root Element
printfunc.py
from robot.libraries.BuiltIn import BuiltIn
def expand_shadow_element(driver, element):
shadow_root = driver.execute_script('return arguments[0].shadowRoot', element)
return shadow_root
def get_title_present_under_shadow_root_element():
selenium2lib = BuiltIn().get_library_instance('Selenium2Library')
# following line returns webdriver initiated in robot-framework
driver = selenium2lib.driver
# # shadow root locator - preceding tag of #shadow-root
root1 = driver.find_element_by_tag_name('print-preview-app')
shadow_root1 = expand_shadow_element(driver, root1)
return shadow_root1
当执行这个脚本时,它总是在下面显示错误信息
NoSuchElementException:消息:没有这样的元素:无法找到元素:{"method":"css selector","selector":"print-preview-app"}
有人可以帮我解决这个问题吗?
【问题讨论】:
-
我正在查看您的示例代码,但没有看到您切换到新窗口的位置。 Selenium 看不到新窗口何时打开,您必须使用关键字切换到它。
标签: python selenium selenium-webdriver robotframework