def context_click(self): action = Actions(driver) action.context_click(self) action.perform()
class TestMouseAction(MarionetteTestCase): def setUp(self): MarionetteTestCase.setUp(self) if self.marionette.session_capabilities["platformName"] == "darwin": self.mod_key = Keys.META else: self.mod_key = Keys.CONTROL self.action = Actions(self.marionette) def test_click_action(self): test_html = self.marionette.absolute_url("test.html") self.marionette.navigate(test_html) link = self.marionette.find_element(By.ID, "mozLink") self.action.click(link).perform() self.assertEqual( "Clicked", self.marionette.execute_script( "return document.getElementById('mozLink').innerHTML")) def test_clicking_element_out_of_view_succeeds(self): # The action based click doesn"t check for visibility. test_html = self.marionette.absolute_url("hidden.html") self.marionette.navigate(test_html) el = self.marionette.find_element(By.ID, "child") self.action.click(el).perform() def test_double_click_action(self): self.marionette.navigate( inline(""" <div contenteditable>zyxw</div><input type="text"/> """)) el = self.marionette.find_element(By.CSS_SELECTOR, "div") self.action.double_click(el).perform() el.send_keys(self.mod_key + "c") rel = self.marionette.find_element(By.CSS_SELECTOR, "input") rel.send_keys(self.mod_key + "v") self.assertEqual("zyxw", rel.get_property("value")) def test_context_click_action(self): test_html = self.marionette.absolute_url("clicks.html") self.marionette.navigate(test_html) click_el = self.marionette.find_element(By.ID, "normal") def context_menu_state(): with self.marionette.using_context("chrome"): cm_el = self.marionette.find_element(By.ID, "contentAreaContextMenu") return cm_el.get_property("state") self.assertEqual("closed", context_menu_state()) self.action.context_click(click_el).perform() self.wait_for_condition(lambda _: context_menu_state() == "open") with self.marionette.using_context("chrome"): self.marionette.find_element(By.ID, "main-window").send_keys(Keys.ESCAPE) self.wait_for_condition(lambda _: context_menu_state() == "closed") def test_middle_click_action(self): test_html = self.marionette.absolute_url("clicks.html") self.marionette.navigate(test_html) self.marionette.find_element(By.ID, "addbuttonlistener").click() el = self.marionette.find_element(By.ID, "showbutton") self.action.middle_click(el).perform() self.wait_for_condition(lambda _: el.get_property("innerHTML") == "1") def test_chrome_click(self): self.marionette.navigate("about:blank") data_uri = "data:text/html,<html></html>" with self.marionette.using_context("chrome"): urlbar = self.marionette.find_element(By.ID, "urlbar") urlbar.send_keys(data_uri) go_button = self.marionette.execute_script( "return gURLBar.goButton") self.action.click(go_button).perform() self.wait_for_condition(lambda mn: mn.get_url() == data_uri) def test_chrome_double_click(self): self.marionette.navigate("about:blank") test_word = "quux" with self.marionette.using_context("chrome"): urlbar = self.marionette.find_element(By.ID, "urlbar") self.assertEqual("", urlbar.get_property("value")) urlbar.send_keys(test_word) self.assertEqual(urlbar.get_property("value"), test_word) (self.action.double_click(urlbar).perform().key_down( self.mod_key).key_down("x").perform()) self.assertEqual(urlbar.get_property("value"), "") def test_chrome_context_click_action(self): self.marionette.set_context("chrome") def context_menu_state(): cm_el = self.marionette.find_element(By.ID, "tabContextMenu") return cm_el.get_property("state") currtab = self.marionette.execute_script("return gBrowser.selectedTab") self.assertEqual("closed", context_menu_state()) self.action.context_click(currtab).perform() self.wait_for_condition(lambda _: context_menu_state() == "open") (self.marionette.find_element(By.ID, "main-window").send_keys(Keys.ESCAPE)) self.wait_for_condition(lambda _: context_menu_state() == "closed")
class TestMouseAction(MarionetteTestCase): def setUp(self): MarionetteTestCase.setUp(self) if self.marionette.session_capabilities['platformName'] == 'DARWIN': self.mod_key = Keys.META else: self.mod_key = Keys.CONTROL self.action = Actions(self.marionette) def test_click_action(self): test_html = self.marionette.absolute_url("test.html") self.marionette.navigate(test_html) link = self.marionette.find_element(By.ID, "mozLink") self.action.click(link).perform() self.assertEqual("Clicked", self.marionette.execute_script("return document.getElementById('mozLink').innerHTML;")) def test_clicking_element_out_of_view_succeeds(self): # The action based click doesn't check for visibility. test_html = self.marionette.absolute_url('hidden.html') self.marionette.navigate(test_html) el = self.marionette.find_element(By.ID, 'child') self.action.click(el).perform() def test_double_click_action(self): test_html = self.marionette.absolute_url("double_click.html") self.marionette.navigate(test_html) el = self.marionette.find_element(By.ID, 'one-word-div') self.action.double_click(el).perform() el.send_keys(self.mod_key + 'c') rel = self.marionette.find_element("id", "input-field") rel.send_keys(self.mod_key + 'v') self.assertEqual(rel.get_attribute('value'), 'zyxw') def test_context_click_action(self): test_html = self.marionette.absolute_url("javascriptPage.html") self.marionette.navigate(test_html) click_el = self.marionette.find_element(By.ID, 'resultContainer') def context_menu_state(): with self.marionette.using_context('chrome'): cm_el = self.marionette.find_element(By.ID, 'contentAreaContextMenu') return cm_el.get_attribute('state') self.assertEqual('closed', context_menu_state()) self.action.context_click(click_el).perform() self.wait_for_condition(lambda _: context_menu_state() == 'open') with self.marionette.using_context('chrome'): (self.marionette.find_element(By.ID, 'main-window') .send_keys(Keys.ESCAPE)) self.wait_for_condition(lambda _: context_menu_state() == 'closed') def test_middle_click_action(self): test_html = self.marionette.absolute_url("clicks.html") self.marionette.navigate(test_html) self.marionette.find_element(By.ID, "addbuttonlistener").click() el = self.marionette.find_element(By.ID, "showbutton") self.action.middle_click(el).perform() self.wait_for_condition( lambda _: el.get_attribute('innerHTML') == '1') def test_chrome_click(self): self.marionette.navigate("about:blank") data_uri = "data:text/html,<html></html>" with self.marionette.using_context('chrome'): urlbar = self.marionette.find_element(By.ID, "urlbar") urlbar.send_keys(data_uri) go_button = self.marionette.find_element(By.ID, "urlbar-go-button") self.action.click(go_button).perform() self.wait_for_condition(lambda mn: mn.get_url() == data_uri) def test_chrome_double_click(self): self.marionette.navigate("about:blank") test_word = "quux" with self.marionette.using_context('chrome'): urlbar = self.marionette.find_element(By.ID, "urlbar") self.assertEqual(urlbar.get_attribute('value'), '') urlbar.send_keys(test_word) self.assertEqual(urlbar.get_attribute('value'), test_word) (self.action.double_click(urlbar).perform() .key_down(self.mod_key) .key_down('x').perform()) self.assertEqual(urlbar.get_attribute('value'), '') def test_chrome_context_click_action(self): self.marionette.set_context('chrome') def context_menu_state(): cm_el = self.marionette.find_element(By.ID, 'tabContextMenu') return cm_el.get_attribute('state') currtab = self.marionette.execute_script("return gBrowser.selectedTab") self.assertEqual('closed', context_menu_state()) self.action.context_click(currtab).perform() self.wait_for_condition(lambda _: context_menu_state() == 'open') (self.marionette.find_element(By.ID, 'main-window') .send_keys(Keys.ESCAPE)) self.wait_for_condition(lambda _: context_menu_state() == 'closed')
class TestClickAction(MarionetteTestCase): def setUp(self): MarionetteTestCase.setUp(self) if self.marionette.session_capabilities['platformName'] == 'DARWIN': self.mod_key = Keys.META else: self.mod_key = Keys.CONTROL self.action = Actions(self.marionette) def test_click_action(self): test_html = self.marionette.absolute_url("test.html") self.marionette.navigate(test_html) link = self.marionette.find_element(By.ID, "mozLink") self.action.click(link).perform() self.assertEqual( "Clicked", self.marionette.execute_script( "return document.getElementById('mozLink').innerHTML;")) def test_clicking_element_out_of_view_succeeds(self): # The action based click doesn't check for visibility. test_html = self.marionette.absolute_url('hidden.html') self.marionette.navigate(test_html) el = self.marionette.find_element(By.ID, 'child') self.action.click(el).perform() def test_double_click_action(self): test_html = self.marionette.absolute_url("javascriptPage.html") self.marionette.navigate(test_html) el = self.marionette.find_element(By.ID, 'displayed') # The first click just brings the element into view so text selection # works as expected. (A different test page could be used to isolate # this element and make sure it's always in view) el.click() self.action.double_click(el).perform() el.send_keys(self.mod_key + 'c') rel = self.marionette.find_element("id", "keyReporter") rel.send_keys(self.mod_key + 'v') self.assertEqual(rel.get_attribute('value'), 'Displayed') def test_context_click_action(self): test_html = self.marionette.absolute_url("javascriptPage.html") self.marionette.navigate(test_html) click_el = self.marionette.find_element(By.ID, 'resultContainer') def context_menu_state(): with self.marionette.using_context('chrome'): cm_el = self.marionette.find_element(By.ID, 'contentAreaContextMenu') return cm_el.get_attribute('state') self.assertEqual('closed', context_menu_state()) self.action.context_click(click_el).perform() self.wait_for_condition(lambda _: context_menu_state() == 'open') with self.marionette.using_context('chrome'): (self.marionette.find_element(By.ID, 'main-window').send_keys( Keys.ESCAPE)) self.wait_for_condition(lambda _: context_menu_state() == 'closed') def test_middle_click_action(self): test_html = self.marionette.absolute_url("clicks.html") self.marionette.navigate(test_html) self.marionette.find_element(By.ID, "addbuttonlistener").click() el = self.marionette.find_element(By.ID, "showbutton") self.action.middle_click(el).perform() self.wait_for_condition(lambda _: el.get_attribute('innerHTML') == '1')
class TestClickAction(MarionetteTestCase): def setUp(self): MarionetteTestCase.setUp(self) if self.marionette.session_capabilities['platformName'] == 'DARWIN': self.mod_key = Keys.META else: self.mod_key = Keys.CONTROL self.action = Actions(self.marionette) def test_click_action(self): test_html = self.marionette.absolute_url("test.html") self.marionette.navigate(test_html) link = self.marionette.find_element(By.ID, "mozLink") self.action.click(link).perform() self.assertEqual("Clicked", self.marionette.execute_script("return document.getElementById('mozLink').innerHTML;")) def test_clicking_element_out_of_view_succeeds(self): # The action based click doesn't check for visibility. test_html = self.marionette.absolute_url('hidden.html') self.marionette.navigate(test_html) el = self.marionette.find_element(By.ID, 'child') self.action.click(el).perform() def test_double_click_action(self): test_html = self.marionette.absolute_url("javascriptPage.html") self.marionette.navigate(test_html) el = self.marionette.find_element(By.ID, 'displayed') # The first click just brings the element into view so text selection # works as expected. (A different test page could be used to isolate # this element and make sure it's always in view) el.click() self.action.double_click(el).perform() el.send_keys(self.mod_key + 'c') rel = self.marionette.find_element("id", "keyReporter") rel.send_keys(self.mod_key + 'v') self.assertEqual(rel.get_attribute('value'), 'Displayed') def test_context_click_action(self): test_html = self.marionette.absolute_url("javascriptPage.html") self.marionette.navigate(test_html) click_el = self.marionette.find_element(By.ID, 'resultContainer') def context_menu_state(): with self.marionette.using_context('chrome'): cm_el = self.marionette.find_element(By.ID, 'contentAreaContextMenu') return cm_el.get_attribute('state') self.assertEqual('closed', context_menu_state()) self.action.context_click(click_el).perform() self.wait_for_condition(lambda _: context_menu_state() == 'open') with self.marionette.using_context('chrome'): (self.marionette.find_element(By.ID, 'main-window') .send_keys(Keys.ESCAPE)) self.wait_for_condition(lambda _: context_menu_state() == 'closed') def test_middle_click_action(self): test_html = self.marionette.absolute_url("clicks.html") self.marionette.navigate(test_html) self.marionette.find_element(By.ID, "addbuttonlistener").click() el = self.marionette.find_element(By.ID, "showbutton") self.action.middle_click(el).perform() self.wait_for_condition( lambda _: el.get_attribute('innerHTML') == '1')
class TestMouseAction(MarionetteTestCase): def setUp(self): MarionetteTestCase.setUp(self) if self.marionette.session_capabilities["platformName"] == "darwin": self.mod_key = Keys.META else: self.mod_key = Keys.CONTROL self.action = Actions(self.marionette) def test_click_action(self): test_html = self.marionette.absolute_url("test.html") self.marionette.navigate(test_html) link = self.marionette.find_element(By.ID, "mozLink") self.action.click(link).perform() self.assertEqual("Clicked", self.marionette.execute_script( "return document.getElementById('mozLink').innerHTML")) def test_clicking_element_out_of_view_succeeds(self): # The action based click doesn"t check for visibility. test_html = self.marionette.absolute_url("hidden.html") self.marionette.navigate(test_html) el = self.marionette.find_element(By.ID, "child") self.action.click(el).perform() def test_double_click_action(self): test_html = self.marionette.absolute_url("double_click.html") self.marionette.navigate(test_html) el = self.marionette.find_element(By.ID, "one-word-div") self.action.double_click(el).perform() el.send_keys(self.mod_key + "c") rel = self.marionette.find_element(By.ID, "input-field") rel.send_keys(self.mod_key + "v") self.assertEqual("zyxw", rel.get_property("value")) def test_context_click_action(self): test_html = self.marionette.absolute_url("javascriptPage.html") self.marionette.navigate(test_html) click_el = self.marionette.find_element(By.ID, "resultContainer") def context_menu_state(): with self.marionette.using_context("chrome"): cm_el = self.marionette.find_element(By.ID, "contentAreaContextMenu") return cm_el.get_property("state") self.assertEqual("closed", context_menu_state()) self.action.context_click(click_el).perform() self.wait_for_condition(lambda _: context_menu_state() == "open") with self.marionette.using_context("chrome"): self.marionette.find_element(By.ID, "main-window").send_keys(Keys.ESCAPE) self.wait_for_condition(lambda _: context_menu_state() == "closed") def test_middle_click_action(self): test_html = self.marionette.absolute_url("clicks.html") self.marionette.navigate(test_html) self.marionette.find_element(By.ID, "addbuttonlistener").click() el = self.marionette.find_element(By.ID, "showbutton") self.action.middle_click(el).perform() self.wait_for_condition(lambda _: el.get_property("innerHTML") == "1") def test_chrome_click(self): self.marionette.navigate("about:blank") data_uri = "data:text/html,<html></html>" with self.marionette.using_context("chrome"): urlbar = self.marionette.find_element(By.ID, "urlbar") urlbar.send_keys(data_uri) go_button = self.marionette.find_element(By.ID, "urlbar-go-button") self.action.click(go_button).perform() self.wait_for_condition(lambda mn: mn.get_url() == data_uri) def test_chrome_double_click(self): self.marionette.navigate("about:blank") test_word = "quux" with self.marionette.using_context("chrome"): urlbar = self.marionette.find_element(By.ID, "urlbar") self.assertEqual("", urlbar.get_property("value")) urlbar.send_keys(test_word) self.assertEqual(urlbar.get_property("value"), test_word) (self.action.double_click(urlbar).perform() .key_down(self.mod_key) .key_down("x").perform()) self.assertEqual(urlbar.get_property("value"), "") def test_chrome_context_click_action(self): self.marionette.set_context("chrome") def context_menu_state(): cm_el = self.marionette.find_element(By.ID, "tabContextMenu") return cm_el.get_property("state") currtab = self.marionette.execute_script("return gBrowser.selectedTab") self.assertEqual("closed", context_menu_state()) self.action.context_click(currtab).perform() self.wait_for_condition(lambda _: context_menu_state() == "open") (self.marionette.find_element(By.ID, "main-window") .send_keys(Keys.ESCAPE)) self.wait_for_condition(lambda _: context_menu_state() == "closed")
class TestMouseAction(MarionetteTestCase): def setUp(self): MarionetteTestCase.setUp(self) if self.marionette.session_capabilities['platformName'] == 'Darwin': self.mod_key = Keys.META else: self.mod_key = Keys.CONTROL self.action = Actions(self.marionette) def test_click_action(self): test_html = self.marionette.absolute_url("test.html") self.marionette.navigate(test_html) link = self.marionette.find_element(By.ID, "mozLink") self.action.click(link).perform() self.assertEqual( "Clicked", self.marionette.execute_script( "return document.getElementById('mozLink').innerHTML;")) def test_clicking_element_out_of_view_succeeds(self): # The action based click doesn't check for visibility. test_html = self.marionette.absolute_url('hidden.html') self.marionette.navigate(test_html) el = self.marionette.find_element(By.ID, 'child') self.action.click(el).perform() def test_double_click_action(self): test_html = self.marionette.absolute_url("double_click.html") self.marionette.navigate(test_html) el = self.marionette.find_element(By.ID, 'one-word-div') self.action.double_click(el).perform() el.send_keys(self.mod_key + 'c') rel = self.marionette.find_element(By.ID, "input-field") rel.send_keys(self.mod_key + 'v') self.assertEqual(rel.get_attribute('value'), 'zyxw') def test_context_click_action(self): test_html = self.marionette.absolute_url("javascriptPage.html") self.marionette.navigate(test_html) click_el = self.marionette.find_element(By.ID, 'resultContainer') def context_menu_state(): with self.marionette.using_context('chrome'): cm_el = self.marionette.find_element(By.ID, 'contentAreaContextMenu') return cm_el.get_attribute('state') self.assertEqual('closed', context_menu_state()) self.action.context_click(click_el).perform() self.wait_for_condition(lambda _: context_menu_state() == 'open') with self.marionette.using_context('chrome'): (self.marionette.find_element(By.ID, 'main-window').send_keys( Keys.ESCAPE)) self.wait_for_condition(lambda _: context_menu_state() == 'closed') def test_middle_click_action(self): test_html = self.marionette.absolute_url("clicks.html") self.marionette.navigate(test_html) self.marionette.find_element(By.ID, "addbuttonlistener").click() el = self.marionette.find_element(By.ID, "showbutton") self.action.middle_click(el).perform() self.wait_for_condition(lambda _: el.get_attribute('innerHTML') == '1') def test_chrome_click(self): self.marionette.navigate("about:blank") data_uri = "data:text/html,<html></html>" with self.marionette.using_context('chrome'): urlbar = self.marionette.find_element(By.ID, "urlbar") urlbar.send_keys(data_uri) go_button = self.marionette.find_element(By.ID, "urlbar-go-button") self.action.click(go_button).perform() self.wait_for_condition(lambda mn: mn.get_url() == data_uri) def test_chrome_double_click(self): self.marionette.navigate("about:blank") test_word = "quux" with self.marionette.using_context('chrome'): urlbar = self.marionette.find_element(By.ID, "urlbar") self.assertEqual(urlbar.get_attribute('value'), '') urlbar.send_keys(test_word) self.assertEqual(urlbar.get_attribute('value'), test_word) (self.action.double_click(urlbar).perform().key_down( self.mod_key).key_down('x').perform()) self.assertEqual(urlbar.get_attribute('value'), '') def test_chrome_context_click_action(self): self.marionette.set_context('chrome') def context_menu_state(): cm_el = self.marionette.find_element(By.ID, 'tabContextMenu') return cm_el.get_attribute('state') currtab = self.marionette.execute_script("return gBrowser.selectedTab") self.assertEqual('closed', context_menu_state()) self.action.context_click(currtab).perform() self.wait_for_condition(lambda _: context_menu_state() == 'open') (self.marionette.find_element(By.ID, 'main-window').send_keys(Keys.ESCAPE)) self.wait_for_condition(lambda _: context_menu_state() == 'closed')