Skip to content

Commit b6e845e

Browse files
authored
Support mobile emulate mode (#28)
* Add emulate keywords * Init emulate mode keyword * Move emulator to device descriptor file * Move ref to device descriptors file * Add emulator keywords
1 parent 6e667e7 commit b6e845e

File tree

6 files changed

+803
-0
lines changed

6 files changed

+803
-0
lines changed

Examples/browser-demo.robot

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,11 @@ Example close puppeteer browser
3939
Close Puppeteer
4040
Open browser http://127.0.0.1:7272 options=${options} alias=Browser 2
4141
Click Element id=get_ajax
42+
43+
Example enable emulator mode
44+
[Teardown] Close All Browser
45+
${HEADLESS} Get variable value ${HEADLESS} ${False}
46+
&{options} = create dictionary headless=${HEADLESS}
47+
Open browser http://127.0.0.1:7272 options=${options} alias=Browser 1
48+
Enable emulate mode iPhone SE
49+
Capture page screenshot

PuppeteerLibrary/keywords/browsermanagement.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,3 +198,18 @@ def switch_browser(self, alias):
198198
"""Switch browser context based on alias name
199199
"""
200200
return self.loop.run_until_complete(self.ctx.set_current_context(alias))
201+
202+
@keyword
203+
def enable_emulate_mode(self, emulate_name):
204+
"""Emulate specific mobile or tablet
205+
206+
The ``emulate_name`` argument specifies which emulator to use.
207+
208+
| = Example Options = |
209+
| iPhone X |
210+
| Pixel 2 |
211+
212+
More emulate_name please visit [device_descriptors.py](https://github.com/qahive/robotframework-puppeteer/tree/master/PuppeteerLibrary/utils/device_descriptors.py)
213+
214+
"""
215+
return self.loop.run_until_complete(self.async_func.enable_emulate_mode_async(emulate_name))

PuppeteerLibrary/keywords/browsermanagement_async.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import time
22
from PuppeteerLibrary.base.robotlibcore import keyword
33
from PuppeteerLibrary.base.librarycomponent import LibraryComponent
4+
from PuppeteerLibrary.utils.device_descriptors import DEVICE_DESCRIPTORS
45

56

67
class BrowserManagementKeywordsAsync(LibraryComponent):
@@ -43,3 +44,7 @@ async def close_all_browser_async(self):
4344
async def close_puppeteer_async(self):
4445
await self.ctx.browser.close()
4546
self.ctx.clear_browser()
47+
48+
@keyword
49+
async def enable_emulate_mode_async(self, emulate_name):
50+
await self.ctx.get_current_page().emulate(DEVICE_DESCRIPTORS[emulate_name])

PuppeteerLibrary/utils/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from .device_descriptors import DEVICE_DESCRIPTORS

PuppeteerLibrary/utils/browser.py

Whitespace-only changes.

0 commit comments

Comments
 (0)