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
50 selenium_version = pkg_resources.get_distribution(
"selenium").version
52 if pkg_resources.parse_version(selenium_version) >= pkg_resources.parse_version(
"4.3.0"):
53 from selenium.webdriver.support.ui
import WebDriverWait
54 from selenium.webdriver.common.by
import By
56 CLASSNAME =
'rwt_image_view' 61 parser = argparse.ArgumentParser()
62 parser.add_argument(
'--no-headless', action=
'store_true',
63 help=
'start webdriver with headless mode')
64 args, unknown = parser.parse_known_args()
66 self.
url_base = rospy.get_param(
"url_roswww_testserver")
68 opts = webdriver.firefox.options.Options()
69 if not args.no_headless:
70 opts.add_argument(
'-headless')
71 self.
browser = webdriver.Firefox(options=opts)
73 self.
wait = webdriver.support.ui.WebDriverWait(self.
browser, 10)
75 if pkg_resources.parse_version(selenium_version) >= pkg_resources.parse_version(
"4.3.0"):
76 self.
browser.fullscreen_window()
78 self.
browser.find_element_by_tag_name(
"html").send_keys(Keys.F11)
88 url =
'%s/rwt_image_view' % (self.
url_base)
89 rospy.logwarn(
"Accessing to %s" % url)
94 self.
wait.until(EC.presence_of_element_located((By.ID,
"button-ros-master-settings")))
96 self.assertIsNotNone(settings,
"Object id=button-ros-master-settings not found")
99 self.
wait.until(EC.presence_of_element_located((By.ID,
"input-ros-master-uri")))
101 self.assertIsNotNone(uri,
"Object id=input-ros-master-uri not found")
103 uri.send_keys(
'ws://localhost:9090/')
105 self.
wait.until(EC.presence_of_element_located((By.ID,
"button-ros-master-connect")))
107 self.assertIsNotNone(connect,
"Object id=button-ros-master-connect")
111 self.
wait.until(EC.presence_of_element_located((By.ID,
"topic-select")))
113 self.assertIsNotNone(topic,
"Object id=topic-select not found")
115 while topic.text ==
u'' and loop < 10:
119 self.assertIsNotNone(topic,
"Object id=topic-select not found")
120 self.assertEqual(topic.text,
u'/image_publisher/image_raw')
123 if pkg_resources.parse_version(selenium_version) >= pkg_resources.parse_version(
"4.3.0"):
124 return self.
browser.find_element(By.ID, name)
129 if __name__ ==
'__main__':
131 rostest.run(
'test_rwt_image_view', CLASSNAME, TestRwtImageView, sys.argv)
132 except KeyboardInterrupt:
134 print(
"{} exiting".format(CLASSNAME))
def test_rwt_image_view(self)
def find_element_by_id(self, name)