Update example tests

This commit is contained in:
Michael Mintz 2023-11-09 00:06:51 -05:00
parent 8ecee57145
commit 655c5c108a
8 changed files with 111 additions and 6 deletions

View File

@ -1,10 +1,18 @@
"""google.com example test that uses page objects"""
from seleniumbase import BaseCase
from .google_objects import HomePage, ResultsPage
try:
from .google_objects import HomePage, ResultsPage
except Exception:
from google_objects import HomePage, ResultsPage
BaseCase.main(__name__, __file__)
class GoogleTests(BaseCase):
def test_google_dot_com(self):
if self.headless and self._multithreaded:
self.open_if_not_url("about:blank")
print("Skipping test in headless multi-threaded mode.")
self.skip("Skipping test in headless multi-threaded mode.")
self.open("https://google.com/ncr")
self.assert_title_contains("Google")
self.sleep(0.05)

View File

@ -33,6 +33,10 @@ class SeleniumBaseIOPage:
class MyTests(BaseCase):
def test_page_objects(self):
if self.headless and self._multithreaded:
self.open_if_not_url("about:blank")
print("Skipping test in headless multi-threaded mode.")
self.skip("Skipping test in headless multi-threaded mode.")
search_term = "SeleniumBase.io Docs"
expected_text = "SeleniumBase"
GooglePage().go_to_google(self)

View File

@ -4,9 +4,18 @@ BaseCase.main(__name__, __file__)
class LocaleCodeTests(BaseCase):
def test_locale_code(self):
self.open("https://localeplanet.com/support/browser.html")
locale_code = self.get_locale_code()
self.open("about:blank")
locale_code = self.get_locale_code() # navigator.language
print("\nYour Browser's Locale Code: %s" % locale_code)
expected_text = "navigator.language: %s" % locale_code
self.demo_mode = True # Display test actions
self.assert_text(expected_text, "pre")
if self.browser == "chrome" and not self.headless:
self.open("chrome://settings/languages")
language_info = self.get_text(
"settings-ui::shadow "
"settings-main::shadow "
"settings-basic-page::shadow "
"settings-languages-page::shadow "
"#languagesSection div.start div"
)
print("Language info (chrome://settings/languages):")
print(language_info)
self.sleep(1)

View File

@ -0,0 +1,37 @@
from seleniumbase import SB
def click_turnstile_and_verify(sb):
sb.driver.reconnect(0.1)
iframe = sb.driver.find_element("iframe")
sb.driver.reconnect(0.5)
sb.driver.switch_to.frame(iframe)
sb.driver.uc_click("span.mark")
sb.highlight("img#captcha-success", timeout=3.33)
with SB(uc=True, test=True) as sb:
sb.driver.uc_open_with_reconnect(
"https://seleniumbase.io/apps/form_turnstile",
reconnect_time=2.33,
)
try:
click_turnstile_and_verify(sb)
except Exception:
sb.driver.uc_open_with_reconnect(
"https://seleniumbase.io/apps/form_turnstile",
reconnect_time=2.33,
)
click_turnstile_and_verify(sb)
sb.press_keys("#name", "SeleniumBase")
sb.press_keys("#email", "test@test.test")
sb.press_keys("#phone", "1-555-555-5555")
sb.click('[for="date"]')
sb.click("td.is-today button")
sb.click('div[class="select-wrapper"] input')
sb.click('span:contains("9:00 PM")')
sb.highlight_click('input[value="AR"] + span')
sb.click('input[value="cc"] + span')
sb.highlight_click('button:contains("Request & Pay")')
sb.highlight("img#submit-success")
sb.highlight('button:contains("Success!")')

16
examples/raw_turnstile.py Normal file
View File

@ -0,0 +1,16 @@
from seleniumbase import SB
with SB(uc=True, test=True) as sb:
sb.driver.uc_open_with_reconnect(
"https://seleniumbase.io/apps/turnstile",
reconnect_time=2.33,
)
sb.driver.reconnect(0.1)
iframe = sb.driver.find_element("iframe")
sb.driver.reconnect(0.5)
sb.driver.switch_to.frame(iframe)
sb.driver.uc_click("span.mark")
sb.switch_to_default_content()
sb.assert_element("img#captcha-success", timeout=3.33)
sb.set_messenger_theme(location="top_left")
sb.post_message("Selenium wasn't detected!", duration=3)

View File

@ -0,0 +1,28 @@
from seleniumbase import BaseCase
BaseCase.main(__name__, __file__)
class CDPNetworkBlockingTests(BaseCase):
def test_cdp_network_blocking(self):
if not self.is_chromium:
self.skip("This test is only for Chromium browsers!")
self.execute_cdp_cmd(
'Network.setBlockedURLs', {"urls": [
"*googlesyndication.com*",
"*doubleclick.net*",
"*adsafeprotected.com*",
"*2mdn.net*",
"*googletagmanager.com*",
"*adsafeprotected.com*",
"*snigelweb.com*",
"*fastclick.net*",
"*amazon-adsystem.com*",
"*google-analytics.com*",
]})
self.execute_cdp_cmd('Network.enable', {})
self.open('https://www.w3schools.com/jquery/default.asp')
source = self.get_page_source()
self.assert_true("doubleclick.net" not in source)
self.assert_true("google-analytics.com" not in source)
if self.demo_mode:
self.post_message("Blocking was successful!")

View File

@ -5,6 +5,7 @@
import pytest
from parameterized import parameterized
from seleniumbase import BaseCase
BaseCase.main(__name__, __file__, "-n6")
url = "data:text/html,<h2>Hello</h2><p><input />&nbsp;<button>OK!</button></p>"

View File

@ -8,6 +8,8 @@ class 我的测试类(硒测试用例):
self.开启("https://zh.wikipedia.org/wiki/")
self.断言标题("维基百科,自由的百科全书")
self.断言元素('a[title="Wikipedia:关于"]')
self.断言元素('span:contains("创建账号")')
self.断言元素('span:contains("登录")')
self.断言文本("新闻动态", "span#新闻动态")
self.输入文本('input[name="search"]', "舞龍")
self.单击('button:contains("搜索")')