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

提示错误: 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日

悬赏问题

  • ¥20 关于php录入完成后,批量更新数据库
  • ¥15 请教往复密封润滑问题
  • ¥15 cocos creator发布ios包
  • ¥15 comsol压电材料数据
  • ¥35 用python实现除法算法中goldschmidt算法
  • ¥15 汇编代码转换成C代码
  • ¥15 除法算法中的归一化具体是怎么变的?
  • ¥20 集成电路的逻辑电路和晶体管简化图
  • ¥15 下载windows builder后的问题
  • ¥15 端口连接数为什么会有限制