44 from selenium
import webdriver
45 from selenium.webdriver.common.keys
import Keys
46 from selenium.webdriver.common.by
import By
47 from selenium.webdriver.support
import expected_conditions
as EC
48 from selenium.webdriver.support.ui
import Select
51 selenium_version = pkg_resources.get_distribution(
"selenium").version
53 if pkg_resources.parse_version(selenium_version) >= pkg_resources.parse_version(
"4.3.0"):
54 from selenium.webdriver.support.ui
import WebDriverWait
55 from selenium.webdriver.common.by
import By
57 CLASSNAME =
'rwt_speech_recognition'
62 parser = argparse.ArgumentParser()
63 parser.add_argument(
'--no-headless', action=
'store_true',
64 help=
'start webdriver with headless mode')
65 args, unknown = parser.parse_known_args()
67 self.
url_base = rospy.get_param(
"url_roswww_testserver")
69 opts = webdriver.firefox.options.Options()
70 if not args.no_headless:
71 opts.add_argument(
'-headless')
72 self.
browser = webdriver.Firefox(options=opts)
74 self.
wait = webdriver.support.ui.WebDriverWait(self.
browser, 10)
76 if pkg_resources.parse_version(selenium_version) >= pkg_resources.parse_version(
"4.3.0"):
77 self.
browser.fullscreen_window()
79 self.
browser.find_element_by_tag_name(
"html").send_keys(Keys.F11)
89 url =
'%s/rwt_speech_recognition' % (self.
url_base)
90 rospy.logwarn(
"Accessing to %s" % url)
95 self.
wait.until(EC.presence_of_element_located((By.ID,
"button-ros-master-settings")))
97 self.assertIsNotNone(settings,
"Object id=button-ros-master-settings not found")
100 self.
wait.until(EC.presence_of_element_located((By.ID,
"input-ros-master-uri")))
102 self.assertIsNotNone(uri,
"Object id=input-ros-master-uri not found")
104 uri.send_keys(
'ws://localhost:9090/')
106 self.
wait.until(EC.presence_of_element_located((By.ID,
"button-ros-master-connect")))
108 self.assertIsNotNone(connect,
"Object id=button-ros-master-connect")
112 self.
wait.until(EC.presence_of_element_located((By.ID,
"select-language")))
114 self.assertIsNotNone(select,
"Object id=select-language not found")
115 select.select_by_visible_text(
'日本語')
122 if pkg_resources.parse_version(selenium_version) >= pkg_resources.parse_version(
"4.3.0"):
123 return self.
browser.find_element(By.ID, name)
128 if __name__ ==
'__main__':
130 rostest.run(
'test_rwt_speech_recognition', CLASSNAME, TestRwtSpeechRecognition, sys.argv)
131 except KeyboardInterrupt:
133 print(
"{} exiting".format(CLASSNAME))