Skip to content
This repository was archived by the owner on Mar 19, 2021. It is now read-only.

Commit 55873fa

Browse files
author
Serhii Khalymon
committed
Fix is_mobile_device handling
1 parent 1f9c1d8 commit 55873fa

File tree

5 files changed

+20
-6
lines changed

5 files changed

+20
-6
lines changed

applitools/selenium/eyes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ def _ensure_viewport_size(self):
280280
if self._viewport_size is None:
281281
self._viewport_size = self._driver.get_default_content_viewport_size()
282282
if not eyes_selenium_utils.is_mobile_device(self._driver):
283-
self.set_viewport_size(self._driver, self._viewport_size)
283+
eyes_selenium_utils.set_viewport_size(self._driver, self._viewport_size)
284284

285285
def open(self, driver, app_name, test_name, viewport_size=None):
286286
# type: (AnyWebDriver, tp.Text, tp.Text, tp.Optional[ViewPort]) -> EyesWebDriver

applitools/selenium/eyes_selenium_utils.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,22 @@ def is_mobile_device(driver):
8080
8181
:return: True if the platform running the test is a mobile platform. False otherwise.
8282
"""
83+
is_mobile = """
84+
if( navigator.userAgent.match(/Android/i) ||
85+
navigator.userAgent.match(/iPhone/i) ||
86+
navigator.userAgent.match(/iPad/i) ||
87+
navigator.userAgent.match(/iPod/i) ) {
88+
return true;
89+
} else {
90+
return false;
91+
}
92+
"""
93+
# TODO: Implement proper UserAgent handling
8394
driver = get_underlying_driver(driver)
84-
return driver.desired_capabilities.get('platformName') in ('Android', 'iOS')
95+
is_mobile_platform = driver.desired_capabilities.get('platformName') in ('Android', 'iOS')
96+
if not is_mobile_platform:
97+
is_mobile_platform = driver.execute_script(is_mobile)
98+
return is_mobile_platform
8599

86100

87101
def get_underlying_driver(driver):

tests/platfroms.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,9 @@ def full_name(self):
8080
Platform(name='Linux', version='', browsers=COMMON_BROWSERS, extra=None),
8181
Platform(name='macOS', version='10.13', browsers=COMMON_BROWSERS + [('safari', 'latest')], extra=None),
8282

83-
Platform(name='iPhone', version='11.3', browsers=[], extra={
83+
Platform(name='iOS', version='11.3', browsers=[], extra={
8484
"appiumVersion": "1.9.1",
85-
"deviceName": "Iphone Emulator",
85+
"deviceName": "iPhone Simulator",
8686
"deviceOrientation": "portrait",
8787
"browserName": "Safari",
8888
"newCommandTimeout": 60 * 5

tests/selenium/test_appium.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def test_final_application_android(eyes_open):
3232

3333

3434
@pytest.mark.mobile
35-
@pytest.mark.platform('iPhone')
35+
@pytest.mark.platform('iOS')
3636
@pytest.mark.parametrize('eyes', [
3737
{'force_full_page_screenshot': True, 'hide_scrollbars': False},
3838
{'force_full_page_screenshot': False, 'hide_scrollbars': False},

tox.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ commands =
2222
basepython = python3.4
2323
commands =
2424
pytest -n 5 --platform="Android 6.0" --remote 1 tests/selenium/test_appium.py
25-
pytest -n 2 --platform="iPhone 11.3" --remote 1 tests/selenium/test_appium.py
25+
; pytest -n 2 --platform="iOS 11.3" --remote 1 tests/selenium/test_appium.py
2626

2727

2828
[testenv:lint]

0 commit comments

Comments
 (0)