Selenium с Python, как упростить сценарии, чтобы я мог запускать их из других сценариев Python? - PullRequest
1 голос
/ 26 августа 2010

У меня возникли проблемы с выяснением того, как вынуть то, что не нужно в полосе селена, и упаковать ее таким образом, чтобы я мог вызвать ее из другого сценария.это, поскольку я не понимаю, откуда берутся части тестового модуля ... в идеале, если бы я мог просто разделить это на функцию, которую я мог бы вызвать, и это было бы идеей, спасибо за любой совет.И, да, мне нужен селен, я прошу вас не предлагать альтернативы, так как я собираюсь использовать селен для многих вещей, поэтому мне нужно это выяснить)

Это простобазовый демонстрационный скрипт:

from selenium import selenium

import unittest



class TestGoogle(unittest.TestCase):

    def setUp(self):

        self.selenium = selenium("localhost", \

            4444, "*firefox", "http://www.bing.com")

        self.selenium.start()



    def test_google(self):

        sel = self.selenium

        sel.open("http://www.google.com/webhp")

        sel.type("q", "hello world")

        sel.click("btnG")

        sel.wait_for_page_to_load(5000)

        self.assertEqual("hello world - Google Search", sel.get_title())



    def tearDown(self):

        self.selenium.stop()



if __name__ == "__main__":

    unittest.main()

1 Ответ

1 голос
/ 26 августа 2010

Я бы порекомендовал сделать так, чтобы функции в вашем другом скрипте имели в качестве аргумента ссылку на контрольный пример.Таким образом, ваши функции могут не пройти тестовый случай, если что-то пойдет не так.Вот так (для поиска в Google строки и проверки заголовка):

def search_s(utest, in_str):
  s = utest.selenium
  s.type('q', in_str)
  s.click('btnG')
  s.wait_for_page_to_load('30000')
  utest.assertEqual("%s - Google Search" % (in_str,), s.get_title())

Затем в вашем тестовом примере назовите это так:

def test_google(self):
  s.open('/')
  search_s(self, "hello world")

Затем вы можете создавать библиотекииз этих типов методов, позволяющих смешивать и сопоставлять фрагменты ваших тестов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...