我试图读取一个网页的控制台输出,特别是我需要POST-GET-PUT ajax调用,与RF和Selenium。我在网上找到了一些帮助,但我似乎不能使它工作。我的python脚本是:
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
def get_logs2(driver):
# enable browser logging
#d = DesiredCapabilities.CHROME
#d['goog:loggingPrefs'] = { 'browser':'ALL' }
#driver = webdriver.Chrome(desired_capabilities=d)
# load the desired webpage
#driver.get(driver.current_url)
a = driver.get_log('browser')
# print messages
for entry in driver.get_log('browser'):
print(entry)
print("finished")
return a
我在网页上做了一些操作后,从RF调用这个脚本。因此,我需要将页面在执行操作后的确切状态传递给该函数。我这样做:
${seleniumlib}= Get Library Instance SeleniumLibrary
Log ${seleniumlib._drivers.active_drivers}[0]
${message} = Get Logs2 ${seleniumlib._drivers.active_drivers}[0]
我得到结果和空消息,但我知道控制台不是空的。你能帮忙吗?谢谢。
这是一个完全使用Robot Framework的解决方案,没有额外的用户库。逻辑是一样的。
- 设置正确的浏览器功能以启用日志记录。
- 然后使用
Get Library Instance
关键字检索webdriver实例 - 调用webdriver实例上的
get_log('browser')
*** Settings ***
Library SeleniumLibrary
*** Variables ***
&{browser logging capability} browser=ALL
&{capabilities} browserName=chrome version=${EMPTY} platform=ANY goog:loggingPrefs=${browser logging capability}
*** Test Cases ***
Browser Log Cases
Open Browser https://stackoverflow.com Chrome desired_capabilities=${capabilities}
${log entries}= Get Browser Console Log Entries
Log ${log entries}
[Teardown] Close All Browsers
*** Keywords ***
Get Browser Console Log Entries
${selenium}= Get Library Instance SeleniumLibrary
${webdriver}= Set Variable ${selenium._drivers.active_drivers}[0]
${log entries}= Evaluate $webdriver.get_log('browser')
[Return] ${log entries}