XICSDNH 2021-08-03 12:41 采纳率: 100%
浏览 2509
已结题

提示错误: TypeError: open() missing 1 required positional argument: 'url'

封装:
from selenium import webdriver

def brower(type_):
    try:
        driver = getattr(webdriver, type_)()
    except:
        driver = webdriver.Chrome()
    return driver

class web_ui:
    # driver = webserver.Chrome()
    # 构造函数
    def __init__(self, type_):
        self.driver = brower(type_)

    # 打开url
    def open(self, url):
        self.driver.get(url)

    # 元素定位
    def locator(self, value):
        return self.driver.find_element(value)

    # 点击
    def click_(self, name, value):
        self.locator(name, value).click()

    # 输入
    def send_(self, name, value, txt):
        self.locator(name, value).send_keys(txt)

    # 退出
    def quit_(self):
        self.driver.quit()

    # 等待
    def sleep_(self, value=10):
        self.driver.implicitly_wait(value)
调用:

from selenium1.web_ui import web_ui

web_ui('Chrome')
web_ui.open('http://www.baidu.com')

提示错误:
TypeError: open() missing 1 required positional argument: 'url'

  • 写回答

3条回答 默认 最新

  • 忍气吞声埋头苦干 2021-08-03 14:06
    关注

    报错解释的很详细,需要一个url参数,说明没收到url这个参数,类中方法定义也没问题,所以判断是调用时出现问题
    你调用的方式是以类方法调用的。而Open函数的第一个参数是self,所以只能以实例来调用
    建议了解一下类的相关知识
    如果按照你这个写法,
    应该先创建一个实例,通过实例来操作实例方法
    chrome = web_ui('Chrome')
    chrome.open('http://www.baidu.com')

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月5日
  • 已采纳回答 8月3日
  • 创建了问题 8月3日

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决