【问题标题】:Geckodriver error: "FirefoxWebElement has no len()"Geckodriver 错误:“FirefoxWebElement 没有 len()”
【发布时间】:2017-09-28 10:47:59
【问题描述】:

我安装了 geckodriver,因为 selenium 不再与最新版本的 Firefox 兼容。请注意,我在 Mac 上使用 Spyder。之前,我已经成功地从一个网站上抓取数据,但是一旦我切换到 geckodriver,我不得不对脚本进行修改。例如,

 browser.find_by_id('closeMessageButton').click() 

现在

 browser.find_element_by_id('closeMessageButton').click() 

我修改了以下内容:

prov_count = len(browser.find_by_id("j_id48:j_id49:j_id108:cmbSecimCevresi").first.find_by_tag('option'))-1

到:

prov_count = len(browser.find_element_by_id("j_id48:j_id49:j_id108:cmbSecimCevresi").find_element_by_tag_name('option'))-1

但我收到以下错误:“TypeError: 'FirefoxWebElement' 类型的对象没有 len()”

我正在尝试获取以下网站上的列表计数,因此我可以遍历“*Il adi”下的列表:https://sonuc.ysk.gov.tr/module/sspsHalkoylamasiYeni.jsf

【问题讨论】:

    标签: python selenium spyder geckodriver


    【解决方案1】:

    你想要.find_elements_by_tag_name()...复数版本(注意“元素”中的“s”)。您使用的单数版本将只返回一个元素并且没有长度 (len)。

    【讨论】:

    • 非常感谢。而且,您知道如何修改代码“browser.select('j_id48:j_id49:j_id108:cmbSecimCevresi',iller[j].value)”吗?我以前用过这个,但现在使用 geckodriver 我收到错误:'WebDriver' object has no attribute 'select'
    • 我必须查看更多代码。这在旧的 FF 驱动程序中也不应该起作用,除非复制/粘贴等中缺少一些文本。把它放在一个新问题中,我会注意它或者其他人会回答它。
    • 谢谢,我刚刚将它作为一个新问题发布。
    猜你喜欢
    • 2022-01-03
    • 2019-04-24
    • 1970-01-01
    • 2012-08-02
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多