Skip to content

Commit be05ecc

Browse files
authored
Merge pull request #1757 from robotframework/selenium-4
Selenium 4
2 parents 8d0877b + f6c5cf1 commit be05ecc

12 files changed

+23
-184
lines changed

.github/workflows/CI.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
runs-on: ubuntu-latest
99
strategy:
1010
matrix:
11-
python-version: [3.6, 3.9, pypy3]
11+
python-version: [3.7, 3.9, pypy3]
1212
rf-version: [3.2.2, 4.0.1]
1313

1414
steps:
@@ -42,6 +42,10 @@ jobs:
4242
if: matrix.python-version != 'pypy3'
4343
run: |
4444
invoke gen-stub
45+
- name: Debugging
46+
if: matrix.python-version != 'pypy3'
47+
run: |
48+
which python
4549
- name: Run tests with headless Chrome and with Python != 3.8
4650
if: matrix.python-version != '3.8'
4751
run: |
@@ -56,6 +60,11 @@ jobs:
5660
wget --no-verbose --output-document=./selenium-server-standalone.jar http://selenium-release.storage.googleapis.com/3.141/selenium-server-standalone-3.141.59.jar
5761
sudo chmod u+x ./selenium-server-standalone.jar
5862
xvfb-run --auto-servernum python atest/run.py --zip headlesschrome --grid True
63+
- uses: actions/upload-artifact@v1
64+
if: success() || failure()
65+
with:
66+
name: Unit Test results
67+
path: utest/output_dir
5968
- uses: actions/upload-artifact@v1
6069
if: success() || failure()
6170
with:

utest/test/api/approved_files/PluginDocumentation.test_many_plugins.approved.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,4 +378,4 @@ This is heading 1 documentation.
378378

379379
= Plugin: my_lib_args =
380380

381-
No plugin documentation found.
381+
No plugin documentation found.

utest/test/api/approved_files/PluginDocumentation.test_parse_plugin_init_doc.approved.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ SeleniumLibrary can be imported with several optional arguments.
1414
Allows extending the SeleniumLibrary with external Python classes.
1515
- ``event_firing_webdriver``:
1616
Class for wrapping Selenium with
17-
[https://seleniumhq.github.io/selenium/docs/api/py/webdriver_support/selenium.webdriver.support.event_firing_webdriver.html#module-selenium.webdriver.support.event_firing_webdriver|EventFiringWebDriver]
17+
[https://seleniumhq.github.io/selenium/docs/api/py/webdriver_support/selenium.webdriver.support.event_firing_webdriver.html#module-selenium.webdriver.support.event_firing_webdriver|EventFiringWebDriver]

utest/test/api/approved_files/PluginDocumentation.test_parse_plugin_kw_doc.approved.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,4 @@ Examples:
3333
| `Execute JavaScript` | window.myFunc('arg1', 'arg2') |
3434
| `Execute JavaScript` | ${CURDIR}/js_to_execute.js |
3535
| `Execute JavaScript` | alert(arguments[0]); | ARGUMENTS | 123 |
36-
| `Execute JavaScript` | ARGUMENTS | 123 | JAVASCRIPT | alert(arguments[0]); |
36+
| `Execute JavaScript` | ARGUMENTS | 123 | JAVASCRIPT | alert(arguments[0]); |

utest/test/keywords/approved_files/FireFoxProfileParsingTests.test_single_method.approved.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ Firefox profile parsing
55
2) key1 arg1 key2 arg2
66
3) True
77
4) 'FirefoxProfile' object has no attribute 'wrong_name'
8-
5) 'str' object has no attribute 'proxy_type'
8+
5) 'FirefoxProfile' object has no attribute 'set_proxy'
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
codehere + []
1+
codehere + []
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
JavaScript code was not found from code argument.
1+
JavaScript code was not found from code argument.

utest/test/keywords/approved_files/test_selenium_options_parser.test_importer.approved.txt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@ Selenium options import
77
4) <class 'selenium.webdriver.ie.options.Options'>
88
5) <class 'selenium.webdriver.opera.options.Options'>
99
6) <class 'selenium.webdriver.edge.options.Options'>
10-
7) phantomjs No module named
11-
8) safari No module named
12-
9) htmlunit No module named
13-
10) htmlunit_with_js No module named
14-
11) <class 'selenium.webdriver.chrome.options.Options'>
15-
12) iphone No module named
10+
7) <class 'selenium.webdriver.safari.options.Options'>
11+
8) htmlunit No module named
12+
9) htmlunit_with_js No module named
13+
10) iphone No module named

utest/test/keywords/test_selenium_options_parser.py

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -189,11 +189,9 @@ def test_importer(options, reporter):
189189
results.append(options._import_options("ie"))
190190
results.append(options._import_options("opera"))
191191
results.append(options._import_options("edge"))
192-
results.append(error_formatter(options._import_options, "phantomjs"))
193192
results.append(error_formatter(options._import_options, "safari"))
194193
results.append(error_formatter(options._import_options, "htmlunit"))
195194
results.append(error_formatter(options._import_options, "htmlunit_with_js"))
196-
results.append(options._import_options("android"))
197195
results.append(error_formatter(options._import_options, "iphone"))
198196
verify_all("Selenium options import", results, reporter=reporter)
199197

@@ -350,9 +348,9 @@ def test_has_options(creator):
350348
assert creator._has_options(webdriver.Chrome)
351349
assert creator._has_options(webdriver.Firefox)
352350
assert creator._has_options(webdriver.Ie)
353-
assert creator._has_options(webdriver.Edge) is False
351+
assert creator._has_options(webdriver.Edge)
354352
assert creator._has_options(webdriver.Opera)
355-
assert creator._has_options(webdriver.Safari) is False
353+
assert creator._has_options(webdriver.Safari)
356354

357355

358356
def test_create_opera_with_options(creator):
@@ -394,17 +392,6 @@ def test_create_safari_no_options_support(creator):
394392
assert driver == expected_webdriver
395393

396394

397-
def test_create_phantomjs_no_options_support(creator):
398-
options = mock()
399-
expected_webdriver = mock()
400-
executable_path = "phantomjs"
401-
when(webdriver).PhantomJS(
402-
service_log_path=None, executable_path=executable_path
403-
).thenReturn(expected_webdriver)
404-
driver = creator.create_phantomjs({}, None, options=options)
405-
assert driver == expected_webdriver
406-
407-
408395
def test_create_htmlunit_no_options_support(creator):
409396
caps = webdriver.DesiredCapabilities.HTMLUNIT.copy()
410397
options = mock()
@@ -439,22 +426,6 @@ def test_create_htmlunit_with_js_no_options_support(creator):
439426
assert driver == expected_webdriver
440427

441428

442-
def test_android_options_support(creator):
443-
caps = webdriver.DesiredCapabilities.ANDROID.copy()
444-
options = mock()
445-
expected_webdriver = mock()
446-
file_detector = mock_file_detector(creator)
447-
when(webdriver).Remote(
448-
command_executor="None",
449-
desired_capabilities=caps,
450-
browser_profile=None,
451-
options=options,
452-
file_detector=file_detector,
453-
).thenReturn(expected_webdriver)
454-
driver = creator.create_android({}, None, options=options)
455-
assert driver == expected_webdriver
456-
457-
458429
def test_iphone_options_support(creator):
459430
caps = webdriver.DesiredCapabilities.IPHONE.copy()
460431
options = mock()

utest/test/keywords/test_webdrivercreator.py

Lines changed: 0 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -646,64 +646,6 @@ def test_safari_no_broser_name(creator):
646646
assert driver == expected_webdriver
647647

648648

649-
def test_phantomjs(creator):
650-
expected_webdriver = mock()
651-
executable_path = "phantomjs"
652-
when(webdriver).PhantomJS(
653-
service_log_path=None, executable_path=executable_path
654-
).thenReturn(expected_webdriver)
655-
driver = creator.create_phantomjs({}, None)
656-
assert driver == expected_webdriver
657-
658-
659-
def test_phantomjs_remote_no_caps(creator):
660-
url = "http://localhost:4444/wd/hub"
661-
expected_webdriver = mock()
662-
capabilities = webdriver.DesiredCapabilities.PHANTOMJS.copy()
663-
file_detector = mock_file_detector(creator)
664-
when(webdriver).Remote(
665-
command_executor=url,
666-
browser_profile=None,
667-
desired_capabilities=capabilities,
668-
options=None,
669-
file_detector=file_detector,
670-
).thenReturn(expected_webdriver)
671-
driver = creator.create_phantomjs({}, url)
672-
assert driver == expected_webdriver
673-
674-
675-
def test_phantomjs_remote_caps(creator):
676-
url = "http://localhost:4444/wd/hub"
677-
expected_webdriver = mock()
678-
capabilities = {"browserName": "phantomjs"}
679-
file_detector = mock_file_detector(creator)
680-
when(webdriver).Remote(
681-
command_executor=url,
682-
browser_profile=None,
683-
desired_capabilities=capabilities,
684-
options=None,
685-
file_detector=file_detector,
686-
).thenReturn(expected_webdriver)
687-
driver = creator.create_phantomjs({"desired_capabilities": capabilities}, url)
688-
assert driver == expected_webdriver
689-
690-
691-
def test_phantomjs_no_browser_name(creator):
692-
url = "http://localhost:4444/wd/hub"
693-
expected_webdriver = mock()
694-
capabilities = {"browserName": "phantomjs", "key": "value"}
695-
file_detector = mock_file_detector(creator)
696-
when(webdriver).Remote(
697-
command_executor=url,
698-
browser_profile=None,
699-
desired_capabilities=capabilities,
700-
options=None,
701-
file_detector=file_detector,
702-
).thenReturn(expected_webdriver)
703-
driver = creator.create_phantomjs({"desired_capabilities": {"key": "value"}}, url)
704-
assert driver == expected_webdriver
705-
706-
707649
def test_htmlunit_no_caps(creator):
708650
caps = webdriver.DesiredCapabilities.HTMLUNIT
709651
expected_webdriver = mock()
@@ -781,36 +723,6 @@ def test_htmlunit_with_js_no_browser_name(creator):
781723
assert driver == expected_webdriver
782724

783725

784-
def test_android(creator):
785-
caps = webdriver.DesiredCapabilities.ANDROID
786-
expected_webdriver = mock()
787-
file_detector = mock_file_detector(creator)
788-
when(webdriver).Remote(
789-
command_executor="None",
790-
desired_capabilities=caps,
791-
browser_profile=None,
792-
options=None,
793-
file_detector=file_detector,
794-
).thenReturn(expected_webdriver)
795-
driver = creator.create_android({}, None)
796-
assert driver == expected_webdriver
797-
798-
799-
def test_android_no_browser_name(creator):
800-
capabilities = {"browserName": "android", "key": "value"}
801-
expected_webdriver = mock()
802-
file_detector = mock_file_detector(creator)
803-
when(webdriver).Remote(
804-
command_executor="None",
805-
desired_capabilities=capabilities,
806-
browser_profile=None,
807-
options=None,
808-
file_detector=file_detector,
809-
).thenReturn(expected_webdriver)
810-
driver = creator.create_android({"desired_capabilities": {"key": "value"}}, None)
811-
assert driver == expected_webdriver
812-
813-
814726
def test_iphone(creator):
815727
caps = webdriver.DesiredCapabilities.IPHONE
816728
expected_webdriver = mock()

0 commit comments

Comments
 (0)