Python Selenium Webdriver向Webelements /自定义'assert'语句添加方法

时间:2018-08-06 13:52:00

标签: python python-3.x selenium selenium-webdriver webdriver

我正在尝试向经常使用的methods添加一些WebElements。我想出了使它起作用的方法,但是现在我的assert语句失败了。这就是我所拥有的。我如何使assert正常工作?

def is_below(self, above_element):
    below = self.location['y']
    above = above_element.location['y']

    self.assertLess(above, below)

WebElement.is_below = WebElement_is_below

实际上,这就是我要弄清楚的所有逻辑:

class ModifiedTestCase(TestCase):
    def is_below(self, above_element):
            below = self.location['y']
            above = above_element.location['y']

        self.assertLess(above, below)

        WebElement.is_below = WebElement_is_below


class SeleniumTest(ModifiedTestCase):

    def test_web_page(self):

        above_element = self.find_element()
        below_element = self.find_element()

        below_element.is_below(above_element)

我得到的错误是“ WebElement没有属性assertIn”。我知道我可以为它传递一个driver参数,但这使某些简单性失败了。

1 个答案:

答案 0 :(得分:0)

所以我想出了一个解决方案。我使用了assert语句。

class ModifiedTestCase(TestCase):
    def WebElement_is_below(self, above_element):
        below = self.location['y']
        above = above_element.location['y']

        assert above < below, f'"{below}"  > "{above}"'

    WebElement.is_below = WebElement_is_below


class SeleniumTest(ModifiedTestCase):

    def test_web_page(self):

        above_element = self.find_element()
        below_element = self.find_element()

        below_element.is_below(above_element)