python - python 中的 selenium webdriver。有第三方库吗?

标签 python webdriver

Python 中是否有任何第三方库可以在 webdriver 之上执行某些操作

我正在考虑使用selenium webdriver在 python 中,但我真的很想使用 ui-module based approach 。我的意思是,而不是看起来像这样的代码:

cheese = driver.find_element_by_css_selector("#food span.dairy.aged")
cheese.click()

我想要类似的东西(不是Python!):

   ui.Div(uid: "div1", clocator: [id: "div1"]) {
      Div(uid: "inner-container", clocator: [id: "div2"]) {
        List(uid: "list1", clocator: [tag: "ul"], separator: "li"){
          UrlLink(uid: "{all}", clocator: [:])
        }
      } 
   }
   click 'inner-container'

所以我预先定义我的 UI,然后编写测试用例。如果 UI 发生变化,我需要更改 UI 模块定义,而不用担心测试用例。

我可以手动滚动这个,但是有没有Python的库可以为我做这个?

最佳答案

据我所知,没有现有项目可以满足您的要求。我在 Webdriver 功能测试中使用的一种模式是将每个逻辑页面定义为一个类。像这样的事情:

class LoginPage(object):

    def __init__(self, testcase):
        self.tc = testcase

    def login(self, username, password, at_login_page=False):
        if not at_login_page:
            self.tc.browser.get(self.tc.ROOT + '/login')

        self.tc.browser.find_element_by_id('id_username').send_keys(username)
        self.tc.browser.find_element_by_id('id_password').send_keys(password)
        login_button = self.tc.browser.find_element_by_id('login-button').click()

然后在测试中使用它,如下所示,其中“self”在本例中是单元测试的一个实例:

    login_page = site_pages.LoginPage(self)
    login_page.login(self.username, self.password)

使用此模式可能会让您更接近您想要做的事情。页面的工作方式逻辑上包含在类方法中,而不是通过每个功能测试无休止地重复。

关于python - python 中的 selenium webdriver。有第三方库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11533863/

相关文章:

python - 使用 Python 和 Google App Engine 问题进行 float 格式化 JSON 转储

java - 我可以使用 Appium - WebDriver 从笔记本电脑 (mac) 在真实设备 (iPhone) 上运行应用程序吗?

java - selenium webdriver xpath InvalidSelectorError

python - 使用空白节点 (rdflib) 时,Sparql 查询返回不期望的结果

python - Discord.py 每个用户的冷却时间不同

java - 对于并发测试执行,WebDriver 设置应该是静态的吗?

python - 属性错误: module 'selenium.webdriver.common.by' has no attribute 'XPATH' using Selenium Python

java - 如何在java中使用selenium webdriver禁用所有警报?

python - 打开和使用 Safari

python - 将多索引 DataFrame 的所有列乘以 Series 中的适当值