diff --git a/tools/autotest.py b/tools/autotest.py index 66786ecf..e17fc3dc 100644 --- a/tools/autotest.py +++ b/tools/autotest.py @@ -14,6 +14,9 @@ for path in ('out/selenium.sqlite', 'out/selenium.sqlite-shm', 'out/selenium.sql pass tf = subprocess.Popen(['out/debug/tildefriends', 'run', '-d', 'out/selenium.sqlite', '-b', '0', '-p', '8888']) +def exists_in_shadow_root(shadow_root, by, value): + return lambda driver: shadow_root.find_element(by, value) + try: options = webdriver.FirefoxOptions() #options.add_argument('--headless') @@ -27,23 +30,15 @@ try: driver.find_element(By.ID, 'loginButton').click() driver.switch_to.frame(driver.find_element(By.ID, 'document')) - WebDriverWait(driver, 30).until(expected_conditions.presence_of_element_located((By.LINK_TEXT, 'ssb'))) - driver.find_element(By.LINK_TEXT, 'ssb').click() + WebDriverWait(driver, 30).until(expected_conditions.presence_of_element_located((By.LINK_TEXT, 'ssb'))).click() driver.switch_to.default_content() - WebDriverWait(driver, 30).until(expected_conditions.presence_of_element_located((By.ID, 'document'))) - driver.switch_to.frame(driver.find_element(By.ID, 'document')) - WebDriverWait(driver, 30).until(expected_conditions.presence_of_element_located((By.TAG_NAME, 'tf-app'))) - tf_app = driver.find_element(By.TAG_NAME, 'tf-app').shadow_root - WebDriverWait(driver, 30).until(expected_conditions.element_to_be_clickable(tf_app.find_element(By.ID, 'create_identity'))) - tf_app.find_element(By.ID, 'create_identity').click() - alert = WebDriverWait(driver, 30).until(expected_conditions.alert_is_present()) - alert.accept() + driver.switch_to.frame(WebDriverWait(driver, 30).until(expected_conditions.presence_of_element_located((By.ID, 'document')))) + tf_app = WebDriverWait(driver, 30).until(expected_conditions.presence_of_element_located((By.TAG_NAME, 'tf-app'))).shadow_root + WebDriverWait(driver, 30).until(expected_conditions.element_to_be_clickable(tf_app.find_element(By.ID, 'create_identity'))).click() + WebDriverWait(driver, 30).until(expected_conditions.alert_is_present()).accept() - driver.implicitly_wait(3) - #tf_app = driver.find_element(By.TAG_NAME, 'tf-app').shadow_root - #WebDriverWait(driver, 30).until(expected_conditions.visibility_of(tf_app.find_element(By.ID, 'tf-tab-news'))) - tf_tab_news = tf_app.find_element(By.ID, 'tf-tab-news').shadow_root + tf_tab_news = WebDriverWait(driver, 30).until(exists_in_shadow_root(tf_app, By.ID, 'tf-tab-news')).shadow_root tf_tab_news.find_element(By.ID, 'tf-compose').shadow_root.find_element(By.ID, 'edit').send_keys('Hello, world!') tf_tab_news.find_element(By.ID, 'tf-compose').shadow_root.find_element(By.ID, 'submit').click()