def test_waitfor_wraps_its_return_value_if_given_eager_arument_is_true(
         self):
     mock_elem = mock.Mock(WebElement)
     self.mock.find_elements_by_xpath.return_value = [mock_elem]
     wrapper = SeleniumWrapper(self.mock)
     self.assertIsInstance(wrapper.waitfor("xpath", "dummy", eager=True),
                           SeleniumContainerWrapper)
Exemplo n.º 2
0
 def test_wrapper_returns_None_in_silent_mode(self):
     mocked_driver = mock.Mock(WebDriver)
     mocked_driver.find_element_by_id.side_effect = TimeoutException
     driver = SeleniumWrapper(mocked_driver)
     self.assertRaises(NoSuchElementException, driver.by_id, 'hoge')
     driver.silent = True
     self.assertIsNone(driver.by_id('hoge'))
 def test_wrapper_returns_None_in_silent_mode(self):
     mocked_driver = mock.Mock(WebDriver)
     mocked_driver.find_element_by_id.side_effect = TimeoutException
     driver = SeleniumWrapper(mocked_driver)
     self.assertRaises(NoSuchElementException, driver.by_id, 'hoge')
     driver.silent = True
     self.assertIsNone(driver.by_id('hoge'))
 def test_wrapper_should_chain_wrapping_if_possible(self):
     mocked_driver = mock.Mock(WebDriver)
     mocked_element = mock.Mock(WebElement)
     mocked_driver.find_element_by_id = lambda given: given
     wrapper = SeleniumWrapper(mocked_driver)
     wrapped_element = wrapper.find_element_by_id(mocked_element)
     unwrapped_element = wrapper.find_element_by_id("hoge")
     self.assertTrue(isinstance(wrapped_element, SeleniumWrapper))
     self.assertFalse(isinstance(unwrapped_element, SeleniumWrapper))
Exemplo n.º 5
0
 def test_wrapper_should_chain_wrapping_if_possible(self):
     mocked_driver = mock.Mock(WebDriver)
     mocked_element = mock.Mock(WebElement)
     mocked_driver.find_element_by_id = lambda given: given
     wrapper = SeleniumWrapper(mocked_driver)
     wrapped_element = wrapper.find_element_by_id(mocked_element)
     unwrapped_element = wrapper.find_element_by_id("hoge")
     self.assertTrue(isinstance(wrapped_element, SeleniumWrapper))
     self.assertFalse(isinstance(unwrapped_element, SeleniumWrapper))
 def test_scroll_into_view_execute_script_if_jquery_was_found(self):
     wrapper = SeleniumWrapper(self.mock)
     wrapper.scroll_into_view('#hoge')
     calls = [
         mock.call.execute_script("try{return $;}catch(e){}"),
         mock.call.execute_script(
             "try{$('#hoge') && $('#hoge')[0].scrollIntoView(true)}catch(e){}"
         )
     ]
     self.mock.assert_has_calls(calls)
 def test_waitfor_raise_if_find_elements_return_falsy_value(self):
     self.mock.find_elements_by_xpath.return_value = []
     wrapper = SeleniumWrapper(self.mock)
     self.assertRaises(NoSuchElementException, wrapper.waitfor,
                       *['xpath', 'dummy'], **{
                           'eager': True,
                           'timeout': 0.1
                       })
    def test_click_should_raise_if_other_exception_is_thrown(self):
        def dummy():
            raise TypeError()

        mocked_element = mock.Mock(WebElement)
        mocked_element.click = dummy
        wrapper = SeleniumWrapper(mocked_element)
        self.assertRaises(TypeError, wrapper.click, **{'timeout': 0.5})
 def test_click_should_raise_if_element_is_not_displayed_for_timeout_seconds(
         self):
     mocked_element = mock.Mock(WebElement)
     mocked_element.is_displayed = lambda: False
     mocked_element.value_of_css_property.return_value = 0
     mocked_element.location = {"x": 0, "y": 0}
     wrapper = SeleniumWrapper(mocked_element)
     self.assertRaises(ElementNotVisibleException, wrapper.click,
                       **{'timeout': 0.5})
    def test_click_should_raise_if_element_is_not_clickable_for_timeout_seconds(
            self):
        def dummy():
            raise WebDriverException("hoge:fuga:huhuhu")

        mocked_element = mock.Mock(WebElement)
        mocked_element.click = dummy
        mocked_element.value_of_css_property.return_value = 0
        mocked_element.location = {"x": 0, "y": 0}
        wrapper = SeleniumWrapper(mocked_element)
        self.assertRaises(WebDriverException, wrapper.click,
                          **{'timeout': 0.5})
    def test_click_should_raise_if_element_is_not_stopping_for_time_seconds(
            self):
        class Hoge(object):
            def __init__(self):
                self.num = 0

            def __getitem__(self, num):
                self.num += 1
                return self.num

        mocked_element = mock.Mock(WebElement)
        mocked_element.location = Hoge()
        wrapper = SeleniumWrapper(mocked_element)
        self.assertRaises(WebDriverException, wrapper.click,
                          **{'timeout': 0.5})
    def test_wrapper_should_handle_attr_access_even_if_attr_is_descriptor(
            self):
        mocked_element = mock.Mock(WebElement)

        class Hoge(WebDriver):
            def __init__(self):
                pass

            @property
            def hoge(self):
                return mocked_element

            @property
            def num(self):
                return 100

        mocked_driver = Hoge()
        wrapper = SeleniumWrapper(mocked_driver)
        self.assertEqual(wrapper.num, 100)
        self.assertTrue(isinstance(wrapper.hoge, SeleniumWrapper),
                        wrapper.hoge)
 def test_unwrap_return_its_wrapped_object(self):
     mocked_element = mock.Mock(WebElement)
     wrapper = SeleniumWrapper(mocked_element)
     self.assertIsInstance(wrapper.unwrap, WebElement)
Exemplo n.º 14
0
 def test_execute_script_should_return_None_if_null_was_returned(self):
     mocked_driver = mock.Mock(WebDriver)
     mocked_driver.execute_script.return_value = None
     driver = SeleniumWrapper(mocked_driver)
     obj = driver.execute_script('return null')
     self.assertIsNone(obj)
 def test_wrapper_should_respond_to_waitfor(self):
     mocked_driver = mock.Mock(WebDriver)
     mocked_driver.find_element_by_id = lambda target: target
     wrapper = SeleniumWrapper(mocked_driver)
     self.assertEqual(wrapper.waitfor('id', 'hoge'), 'hoge')
    def test_aliases_work_correctly(self):
        mock_elem = mock.Mock(WebElement)
        self.mock.find_element_by_xpath.return_value = mock_elem
        self.mock.find_element_by_css_selector.return_value = mock_elem
        self.mock.find_element_by_tag_name.return_value = mock_elem
        self.mock.find_element_by_class_name.return_value = mock_elem
        self.mock.find_element_by_id.return_value = mock_elem
        self.mock.find_element_by_name.return_value = mock_elem
        self.mock.find_element_by_link_text.return_value = mock_elem
        self.mock.find_element_by_partial_link_text.return_value = mock_elem
        wrapper = SeleniumWrapper(self.mock)

        self.assertIsInstance(wrapper.xpath("dummy"), SeleniumWrapper)
        self.assertIsInstance(wrapper.css("dummy"), SeleniumWrapper)
        self.assertIsInstance(wrapper.by_tag("dummy"), SeleniumWrapper)
        self.assertIsInstance(wrapper.by_class("dummy"), SeleniumWrapper)
        self.assertIsInstance(wrapper.by_id("dummy"), SeleniumWrapper)
        self.assertIsInstance(wrapper.by_name("dummy"), SeleniumWrapper)
        self.assertIsInstance(wrapper.by_linktxt("dummy"), SeleniumWrapper)
        self.assertIsInstance(wrapper.by_linktxt("dummy", partial=True),
                              SeleniumWrapper)
        self.assertIsInstance(wrapper.href("dummy"), SeleniumWrapper)
        self.assertIsInstance(wrapper.img(alt="dummy"), SeleniumWrapper)
        self.assertIsInstance(wrapper.by_text("dummy", "dummy"),
                              SeleniumWrapper)
        self.assertIsInstance(wrapper.button("dummy"), SeleniumWrapper)

        wrapped_elem = mock.Mock(WebElement)
        wrapped_elem.find_element_by_xpath.return_value = mock_elem
        wrapper = SeleniumWrapper(wrapped_elem)
        self.assertIsInstance(wrapper.parent, SeleniumWrapper)
 def test_execute_script_should_return_None_if_null_was_returned(self):
     mocked_driver = mock.Mock(WebDriver)
     mocked_driver.execute_script.return_value = None
     driver = SeleniumWrapper(mocked_driver)
     obj = driver.execute_script('return null')
     self.assertIsNone(obj)
 def test_waitfor_wraps_its_return_value_if_it_is_wrappable(self):
     mock_elem = mock.Mock(WebElement)
     self.mock.find_element_by_xpath.return_value = mock_elem
     wrapper = SeleniumWrapper(self.mock)
     self.assertIsInstance(wrapper.waitfor("xpath", "dummy"),
                           SeleniumWrapper)
Exemplo n.º 19
0
 def test_attr_invoke_get_attribute_if_invoked_from_webelement_wrapped(self):
     mock_elem = mock.Mock(WebElement)
     mock_elem.get_attribute.return_value = True
     wrapped = SeleniumWrapper(mock_elem)
     self.assertTrue(wrapped.attr('hoge'))
Exemplo n.º 20
0
 def test_silent_property_raise_AttributeError_if_none_bool_given(self):
     wrapper = SeleniumWrapper(self.mock)
     try:
         wrapper.silent = 1
     except AttributeError:
         pass
 def test_attr_raise_if_invoked_from_webdriver_wrapped_object(self):
     wrapper = SeleniumWrapper(self.mock)
     self.assertRaises(AttributeError, wrapper.attr, 'hoge')
Exemplo n.º 22
0
 def test_scroll_into_view_execute_script_if_jquery_was_found(self):
     wrapper = SeleniumWrapper(self.mock)
     wrapper.scroll_into_view('#hoge')
     calls = [mock.call.execute_script("try{return $;}catch(e){}"),
              mock.call.execute_script("try{$('#hoge') && $('#hoge')[0].scrollIntoView(true)}catch(e){}")]
     self.mock.assert_has_calls(calls)
 def test_scroll_into_view_raise_if_no_jquery_found(self):
     wrapper = SeleniumWrapper(self.mock)
     self.mock.execute_script.return_value = None
     self.assertRaises(AttributeError, wrapper.scroll_into_view, '#hoge')
 def test_scroll_methods_raise_if_wrapped_is_not_webdriver(self):
     wrapper = SeleniumWrapper(mock.Mock(WebElement))
     self.assertRaises(AttributeError, wrapper.scroll_to, *[10, 10])
     self.assertRaises(AttributeError, wrapper.scroll_by, *[10, 10])
     self.assertRaises(AttributeError, wrapper.scroll_into_view, '#hoge')
Exemplo n.º 25
0
 def test_waitfor_wraps_its_return_value_if_it_is_wrappable(self):
     mock_elem = mock.Mock(WebElement)
     self.mock.find_element_by_xpath.return_value = mock_elem
     wrapper = SeleniumWrapper(self.mock)
     self.assertIsInstance(wrapper.waitfor("xpath", "dummy"), SeleniumWrapper)
 def test_wrapper_should_delegate_unknown_attribute_access_to_wrapped_driver(
         self):
     mocked_driver = mock.Mock(WebDriver)
     mocked_driver.hoge = lambda d: d
     wrapper = SeleniumWrapper(mocked_driver)
     self.assertEqual(wrapper.hoge(1), 1)
Exemplo n.º 27
0
 def test_waitfor_wraps_its_return_value_if_given_eager_arument_is_true(self):
     mock_elem = mock.Mock(WebElement)
     self.mock.find_elements_by_xpath.return_value = [mock_elem]
     wrapper = SeleniumWrapper(self.mock)
     self.assertIsInstance(wrapper.waitfor("xpath", "dummy", eager=True), SeleniumContainerWrapper)
 def test_wrapper_should_raise_AttributeError_if_wrapped_driver_also_dont_have_attribute_with_given_name(
         self):
     mocked_driver = mock.Mock(WebDriver)
     wrapper = SeleniumWrapper(mocked_driver)
     self.assertRaises(AttributeError, getattr, *[wrapper, 'hoge'])
Exemplo n.º 29
0
    def test_aliases_work_correctly(self):
        mock_elem = mock.Mock(WebElement)
        self.mock.find_element_by_xpath.return_value = mock_elem
        self.mock.find_element_by_css_selector.return_value = mock_elem
        self.mock.find_element_by_tag_name.return_value = mock_elem
        self.mock.find_element_by_class_name.return_value = mock_elem
        self.mock.find_element_by_id.return_value = mock_elem
        self.mock.find_element_by_name.return_value = mock_elem
        self.mock.find_element_by_link_text.return_value = mock_elem
        self.mock.find_element_by_partial_link_text.return_value = mock_elem
        wrapper = SeleniumWrapper(self.mock)

        self.assertIsInstance(wrapper.xpath("dummy"), SeleniumWrapper)
        self.assertIsInstance(wrapper.css("dummy"), SeleniumWrapper)
        self.assertIsInstance(wrapper.by_tag("dummy"), SeleniumWrapper)
        self.assertIsInstance(wrapper.by_class("dummy"), SeleniumWrapper)
        self.assertIsInstance(wrapper.by_id("dummy"), SeleniumWrapper)
        self.assertIsInstance(wrapper.by_name("dummy"), SeleniumWrapper)
        self.assertIsInstance(wrapper.by_linktxt("dummy"), SeleniumWrapper)
        self.assertIsInstance(wrapper.by_linktxt("dummy", partial=True), SeleniumWrapper)
        self.assertIsInstance(wrapper.href("dummy"), SeleniumWrapper)
        self.assertIsInstance(wrapper.img(alt="dummy"), SeleniumWrapper)
        self.assertIsInstance(wrapper.by_text("dummy", "dummy"), SeleniumWrapper)
        self.assertIsInstance(wrapper.button("dummy"), SeleniumWrapper)

        wrapped_elem = mock.Mock(WebElement)
        wrapped_elem.find_element_by_xpath.return_value = mock_elem
        wrapper = SeleniumWrapper(wrapped_elem)
        self.assertIsInstance(wrapper.parent, SeleniumWrapper)
 def test_attr_invoke_get_attribute_if_invoked_from_webelement_wrapped(
         self):
     mock_elem = mock.Mock(WebElement)
     mock_elem.get_attribute.return_value = True
     wrapped = SeleniumWrapper(mock_elem)
     self.assertTrue(wrapped.attr('hoge'))
Exemplo n.º 31
0
 def test_timeout_property_allows_int_and_float(self):
     wrapper = SeleniumWrapper(self.mock)
     wrapper.timeout = 0.1
     self.assertEqual(wrapper.timeout, 0.1)
     wrapper.timeout = 1
     self.assertEqual(wrapper.timeout, 1)
 def test_timeout_property_allows_int_and_float(self):
     wrapper = SeleniumWrapper(self.mock)
     wrapper.timeout = 0.1
     self.assertEqual(wrapper.timeout, 0.1)
     wrapper.timeout = 1
     self.assertEqual(wrapper.timeout, 1)
Exemplo n.º 33
0
 def test_wrapper_should_delegate_unknown_attribute_access_to_wrapped_driver(self):
     mocked_driver = mock.Mock(WebDriver)
     mocked_driver.hoge = lambda d: d
     wrapper = SeleniumWrapper(mocked_driver)
     self.assertEqual(wrapper.hoge(1), 1)
 def test_silent_property_raise_AttributeError_if_none_bool_given(self):
     wrapper = SeleniumWrapper(self.mock)
     try:
         wrapper.silent = 1
     except AttributeError:
         pass
Exemplo n.º 35
0
 def test_wrapper_should_respond_to_waitfor(self):
     mocked_driver = mock.Mock(WebDriver)
     mocked_driver.find_element_by_id = lambda target: target
     wrapper = SeleniumWrapper(mocked_driver)
     self.assertEqual(wrapper.waitfor('id', 'hoge'), 'hoge')
 def test_init_not_raise_if_driver_is_a_webdriver_object(self):
     mocked_driver = mock.Mock(WebDriver)
     SeleniumWrapper(mocked_driver)