Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions Examples/javascript-demo.robot
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
*** Settings ***
Library PuppeteerLibrary
Test Setup Open browser to test page
Test Teardown Close Browser


*** Variables ***
${HOME_PAGE_URL} http://127.0.0.1:7272


*** Test Cases ***
Execute javascript command
Handle Alert ACCEPT
Execute Javascript console.log('Hi five');
Execute Javascript alert('Hello world');


*** Keywords ***
Open browser to test page
${HEADLESS} Get variable value ${HEADLESS} ${False}
&{options} = create dictionary headless=${HEADLESS}
Open browser ${HOME_PAGE_URL} options=${options}

5 changes: 4 additions & 1 deletion PuppeteerLibrary/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
from robot.api import logger
from pyppeteer.browser import Browser
from robot.libraries.BuiltIn import BuiltIn

from PuppeteerLibrary.custom_elements.SPage import SPage
from PuppeteerLibrary.base.robotlibcore import DynamicCore
from PuppeteerLibrary.keywords import (
Expand All @@ -14,6 +13,8 @@
ElementKeywordsAsync,
FormElementKeywords,
FormElementKeywordsAsync,
JavascriptKeywords,
JavascriptKeywordsAsync,
ScreenshotKeywords,
ScreenshotKeywordsAsync,
UtilityKeywords,
Expand Down Expand Up @@ -77,6 +78,7 @@ def __init__(self):
BrowserManagementKeywords(self),
ElementKeywords(self),
FormElementKeywords(self),
JavascriptKeywords(self),
ScreenshotKeywords(self),
UtilityKeywords(self),
WaitingKeywords(self)
Expand All @@ -87,6 +89,7 @@ def __init__(self):
AlertKeywordsAsync(self),
ElementKeywordsAsync(self),
FormElementKeywordsAsync(self),
JavascriptKeywordsAsync(self),
ScreenshotKeywordsAsync(self),
WaitingKeywordsAsync(self)
]
Expand Down
2 changes: 2 additions & 0 deletions PuppeteerLibrary/keywords/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
from .element_async import ElementKeywordsAsync
from .formelement import FormElementKeywords
from .formelement_async import FormElementKeywordsAsync
from .javascript import JavascriptKeywords
from .javascript_async import JavascriptKeywordsAsync
from .screenshot import ScreenshotKeywords
from .screenshot_async import ScreenshotKeywordsAsync
from .utility import UtilityKeywords
Expand Down
25 changes: 25 additions & 0 deletions PuppeteerLibrary/keywords/javascript.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from PuppeteerLibrary.base.robotlibcore import keyword
from PuppeteerLibrary.base.librarycomponent import LibraryComponent
from PuppeteerLibrary.keywords.javascript_async import JavascriptKeywordsAsync


class JavascriptKeywords(LibraryComponent):

def __init__(self, ctx):
self.ctx = ctx
self.async_func = JavascriptKeywordsAsync(self.ctx)

@keyword
def execute_javascript(self, code):
"""Executes the given JavaScript code

Examples:
| `Handle Alert` | ACCEPT |
| `Execute Javascript` | alert('Hello world'); |


Examples:
| `Execute Javascript` | console.log('Hi 5'); |

"""
return self.loop.run_until_complete(self.async_func.execute_javascript_async(code))
12 changes: 12 additions & 0 deletions PuppeteerLibrary/keywords/javascript_async.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from PuppeteerLibrary.base.robotlibcore import keyword
from PuppeteerLibrary.base.librarycomponent import LibraryComponent


class JavascriptKeywordsAsync(LibraryComponent):

def __init__(self, ctx):
self.ctx = ctx

@keyword
async def execute_javascript_async(self, code):
return await self.ctx.get_current_page().evaluate(code)
2 changes: 1 addition & 1 deletion docs/PuppeteerLibrary.html

Large diffs are not rendered by default.