Skip to content

Commit dfffd66

Browse files
authored
Merge pull request #446 from seleniumbase/update-remote-chrome-and-other-things
Update Chrome options when running remotely (and more)
2 parents f3c0151 + a4031a1 commit dfffd66

File tree

7 files changed

+32
-29
lines changed

7 files changed

+32
-29
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[<img src="https://cdn2.hubspot.net/hubfs/100006/images/super_logo_sb10.png" title="SeleniumBase" height="48">](https://github.com/seleniumbase/SeleniumBase/blob/master/README.md)
1+
[<img src="https://cdn2.hubspot.net/hubfs/100006/images/super_logo_sb12.png" title="SeleniumBase" height="48">](https://github.com/seleniumbase/SeleniumBase/blob/master/README.md)
22

33
[<img src="https://img.shields.io/github/release/seleniumbase/SeleniumBase.svg" alt=" " />](https://github.com/seleniumbase/SeleniumBase/releases) [<img src="https://dev.azure.com/seleniumbase/seleniumbase/_apis/build/status/seleniumbase.SeleniumBase?branchName=master" alt=" " />](https://dev.azure.com/seleniumbase/seleniumbase/_build/latest?definitionId=1&branchName=master) [<img src="https://travis-ci.org/seleniumbase/SeleniumBase.svg?branch=master" alt=" " />](https://travis-ci.org/seleniumbase/SeleniumBase) [<img src="https://badges.gitter.im/seleniumbase/SeleniumBase.svg" alt=" " />](https://gitter.im/seleniumbase/SeleniumBase) [<img src="https://img.shields.io/badge/license-MIT-22BBCC.svg" alt=" " />](https://github.com/seleniumbase/SeleniumBase/blob/master/LICENSE) [<img src="https://img.shields.io/github/stars/seleniumbase/seleniumbase.svg" alt=" " />](https://github.com/seleniumbase/SeleniumBase/stargazers)
44

examples/upload_file_test.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,7 @@ class FileUploadButtonTests(BaseCase):
88
def test_file_upload_button(self):
99
self.open("https://www.w3schools.com/jsref/tryit.asp"
1010
"?filename=tryjsref_fileupload_get")
11-
if not self.ad_block_on:
12-
# If ad-blocking is disabled, block anyway.
13-
self.wait_for_element('[id*="google_ads"]')
14-
self.remove_elements('[id*="google_ads"]')
11+
self.ad_block()
1512
self.switch_to_frame('iframeResult')
1613
self.add_css_style(
1714
'input[type="file"]{zoom: 1.5;-moz-transform: scale(1.5);}')

help_docs/features_list.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[<img src="https://cdn2.hubspot.net/hubfs/100006/images/super_logo_sb.png" title="SeleniumBase" height="48">](https://github.com/seleniumbase/SeleniumBase/blob/master/README.md)
1+
[<img src="https://cdn2.hubspot.net/hubfs/100006/images/super_logo_sb9.png" title="SeleniumBase" height="48">](https://github.com/seleniumbase/SeleniumBase/blob/master/README.md)
22

33
<a id="feature_list"></a>
44
## <img src="https://cdn2.hubspot.net/hubfs/100006/images/super_square_logo_3a.png" title="SeleniumBase" height="32"> **Features:**

seleniumbase/config/ad_block_list.py

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,21 @@
1818

1919
AD_BLOCK_LIST = [
2020
'script[src*="/adservice."]',
21-
'script[type="data-doubleclick"]',
2221
'script[src*="doubleclick.net"]',
23-
'script[src*="googletagservices.com/"]',
24-
'script[src*="ad.doubleclick.net/"]',
22+
'script[src*="googletagservices.com"]',
23+
'script[src*="doubleclick.net"]',
2524
'script[src*="adsbygoogle.js"]',
2625
'script[src*="adroll.com"]',
2726
'script[src*="/pagead/"]',
28-
'iframe[onload*="doWithAds"]',
27+
'script[src*="ads-host"]',
28+
'script[src*="adsystem.com"]',
29+
'script[type="data-doubleclick"]',
2930
'iframe[src*="doubleclick.net"]',
31+
'iframe[onload*="doWithAds"]',
3032
'iframe[id*="google_ads_frame"]',
3133
'[aria-label="Ad"]',
32-
'[class^="sponsored-content"]',
33-
'[class="adsbygoogle"]',
34+
'[class*="sponsored-content"]',
35+
'[class*="adsbygoogle"]',
3436
'[class^="adroll"]',
3537
'[data-ad-details*="Advertisement"]',
3638
'[data-native_ad*="placement"]',
@@ -39,6 +41,12 @@
3941
'[data-track-event-label*="-taboola-"]',
4042
'[data-ad-feedback-beacon*="AD_"]',
4143
'[data-ad-feedback-beacon]',
44+
'[data-dcm-click-tracker*="/adclick."]',
45+
'[data-google-query-id]',
46+
'[data-ylk*="pkgt:sponsored_cluster"]',
47+
'[data-google-av-cxn*="pagead2"]',
48+
'[data-ad-client]',
49+
'[data-ad-slot]',
4250
'[href*="doubleclick.net/"]',
4351
'[href*="amazon-adsystem"]',
4452
'[alt="Advertisement"]',
@@ -51,17 +59,13 @@
5159
'[id^="outbrain_widget"]',
5260
'[id^="taboola-"]',
5361
'[id^="google_ads_frame"]',
62+
'[id^="google_ads_iframe"]',
63+
'[id="tryitLeaderboard"]',
5464
'[id="dianomiRightRail"]',
5565
'[src*="smartads."]',
5666
'[src*="ad_nexus"]',
5767
'[src*="/ads/"]',
5868
'[allow*="advertising.com"]',
59-
'[data-dcm-click-tracker*="/adclick."]',
60-
'[data-google-query-id^="C"]',
61-
'[data-ylk*="pkgt:sponsored_cluster"]',
62-
'[data-google-av-cxn*="pagead2"]',
63-
'[data-ad-client]',
64-
'[data-ad-slot]',
6569
'ins.adsbygoogle',
6670
'li.strm-ad-clusters',
6771
'li.js-stream-ad',

seleniumbase/core/browser_launcher.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,8 @@ def _add_chrome_disable_csp_extension(chrome_options):
125125
def _set_chrome_options(
126126
downloads_path, headless, proxy_string, proxy_auth,
127127
proxy_user, proxy_pass, user_agent, disable_csp, enable_sync,
128-
user_data_dir, extension_zip, extension_dir, mobile_emulator,
129-
device_width, device_height, device_pixel_ratio):
128+
user_data_dir, extension_zip, extension_dir, servername,
129+
mobile_emulator, device_width, device_height, device_pixel_ratio):
130130
chrome_options = webdriver.ChromeOptions()
131131
prefs = {
132132
"download.default_directory": downloads_path,
@@ -140,7 +140,8 @@ def _set_chrome_options(
140140
chrome_options.add_experimental_option("w3c", True)
141141
chrome_options.add_experimental_option(
142142
"excludeSwitches", ["enable-automation"])
143-
chrome_options.add_experimental_option("useAutomationExtension", False)
143+
if servername == "localhost" or servername == "127.0.0.1":
144+
chrome_options.add_experimental_option("useAutomationExtension", False)
144145
if mobile_emulator:
145146
emulator_settings = {}
146147
device_metrics = {}
@@ -359,7 +360,7 @@ def get_driver(browser_name, headless=False, use_grid=False,
359360
device_width, device_height, device_pixel_ratio)
360361
else:
361362
return get_local_driver(
362-
browser_name, headless,
363+
browser_name, headless, servername,
363364
proxy_string, proxy_auth, proxy_user, proxy_pass, user_agent,
364365
disable_csp, enable_sync, user_data_dir,
365366
extension_zip, extension_dir, mobile_emulator,
@@ -381,8 +382,8 @@ def get_remote_driver(
381382
chrome_options = _set_chrome_options(
382383
downloads_path, headless, proxy_string, proxy_auth,
383384
proxy_user, proxy_pass, user_agent, disable_csp, enable_sync,
384-
user_data_dir, extension_zip, extension_dir, mobile_emulator,
385-
device_width, device_height, device_pixel_ratio)
385+
user_data_dir, extension_zip, extension_dir, servername,
386+
mobile_emulator, device_width, device_height, device_pixel_ratio)
386387
capabilities = chrome_options.to_capabilities()
387388
for key in desired_caps.keys():
388389
capabilities[key] = desired_caps[key]
@@ -489,7 +490,7 @@ def get_remote_driver(
489490

490491

491492
def get_local_driver(
492-
browser_name, headless,
493+
browser_name, headless, servername,
493494
proxy_string, proxy_auth, proxy_user, proxy_pass, user_agent,
494495
disable_csp, enable_sync, user_data_dir,
495496
extension_zip, extension_dir,
@@ -563,7 +564,7 @@ def get_local_driver(
563564
downloads_path, headless,
564565
proxy_string, proxy_auth, proxy_user, proxy_pass,
565566
user_agent, disable_csp, enable_sync, user_data_dir,
566-
extension_zip, extension_dir, mobile_emulator,
567+
extension_zip, extension_dir, servername, mobile_emulator,
567568
device_width, device_height, device_pixel_ratio)
568569
return webdriver.Chrome(executable_path=LOCAL_EDGEDRIVER,
569570
options=chrome_options)
@@ -588,7 +589,7 @@ def get_local_driver(
588589
downloads_path, headless,
589590
proxy_string, proxy_auth, proxy_user, proxy_pass,
590591
user_agent, disable_csp, enable_sync, user_data_dir,
591-
extension_zip, extension_dir, mobile_emulator,
592+
extension_zip, extension_dir, servername, mobile_emulator,
592593
device_width, device_height, device_pixel_ratio)
593594
if LOCAL_CHROMEDRIVER and os.path.exists(LOCAL_CHROMEDRIVER):
594595
make_driver_executable_if_not(LOCAL_CHROMEDRIVER)

seleniumbase/fixtures/base_case.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1893,6 +1893,7 @@ def remove_elements(self, selector, by=By.CSS_SELECTOR):
18931893
self.safe_execute_script(remove_script)
18941894

18951895
def ad_block(self):
1896+
self.wait_for_ready_state_complete()
18961897
from seleniumbase.config import ad_block_list
18971898
for css_selector in ad_block_list.AD_BLOCK_LIST:
18981899
css_selector = re.escape(css_selector)
@@ -4218,7 +4219,7 @@ def setUp(self, masterqa_mode=False):
42184219
raise Exception("""SeleniumBase plugins did not load! """
42194220
"""Please reinstall using:\n"""
42204221
""" >>> "pip install -r requirements.txt" <<<\n"""
4221-
""" >>> "python setup.py develop" <<< """)
4222+
""" >>> "python setup.py install" <<< """)
42224223
if self.settings_file:
42234224
settings_parser.set_settings(self.settings_file)
42244225
# Mobile Emulator device metrics: CSS Width, CSS Height, & Pixel-Ratio

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545

4646
setup(
4747
name='seleniumbase',
48-
version='1.34.1',
48+
version='1.34.2',
4949
description='Fast, Easy, and Reliable Browser Automation & Testing.',
5050
long_description=long_description,
5151
long_description_content_type='text/markdown',

0 commit comments

Comments
 (0)