【问题标题】:Using browser.fill() and getting TypeError: fill() takes 2 positional arguments but 3 were given使用 browser.fill() 并获取 TypeError: fill() 需要 2 个位置参数,但给出了 3 个
【发布时间】:2021-10-29 19:53:33
【问题描述】:

我正在尝试使用此代码填写网页上的输入字段:

from splinter import Browser
from bs4 import BeautifulSoup as bs
from webdriver_manager.chrome import ChromeDriverManager
from selenium import webdriver

executable_path = {'executable_path':ChromeDriverManager().install()}
browser = Browser('chrome', **executable_path, headless = False)
browser.visit('http://webapps2.rrc.state.tx.us/EWA/wellboreQueryAction.do')
**browser.find_by_name('searchArgs.leaseNumberArg').fill('searchArgs.leaseNumberArg',
                                                    '160895')**

我收到此错误: TypeError: fill() 接受 2 个位置参数,但给出了 3 个

我已使用相同的语法成功填充其他输入字段。据我所知,这里唯一的区别是输入字段名称包含一个“。”我认为这可能与某种数据结构的列有关。

有没有想过如何通过这个路障?

【问题讨论】:

    标签: python-3.x


    【解决方案1】:

    我以前从未使用过splinter,所以我不确定自己。但是在阅读了您的代码之后,您如何编写这样的代码呢?

    browser.find_by_name('searchArgs.leaseNumberArg').fill('160895')
    

    如果我没记错的话,您已经使用find_by_name() 获得了该元素,因此您无需在填充方法中第二次传递它。看起来很合乎逻辑。

    Here 是另一篇展示如何使用fill() 的帖子。

    【讨论】:

    • 太棒了,做到了。感谢您的意见!
    • 所以如果解决了错误,请将答案标记为已接受。谢谢。
    猜你喜欢
    • 2021-02-02
    • 1970-01-01
    • 1970-01-01
    • 2020-03-27
    • 2022-01-19
    • 2017-02-18
    • 2021-01-22
    • 2020-05-23
    • 2020-01-06
    相关资源
    最近更新 更多