在jupyter notebook中运行selenium操作浏览器时,报出一下错误:
按道理teacher对象的type应该是selenium.webdriver.remote.webelement.WebElement才对,怎么会变成dict字典呢?
我查阅了资料:有一下2种说法:
1.应该使用driver.find_elemenr_by_id('teacher')的方法,可是替换了后系统显示该方法已被弃用。我再查才发现是我的selenium的版本是4,而这种方法只能用于3或更低。无奈之下我就卸载了selenium4,转而安装3,可是在3中运行了driver.find_elemenr_by_id('teacher')还是把teacher当成了dict对象。这时我就觉得不是版本的问题,版本越新一般功能应该越完善才对,怎么可能版本新了有些功能还退化了呢。所以我就又卸载了3,安装了4.。在4中只是把3中driver.find_elemenr_by_id('teacher')类似这种命令统一我上面截图的那一种而已。
2.安装的浏览器驱动没有放在Python的根目录下。可是我检查了一下,我确实是放在anaconda的目录下了。所以应该也没问题。
最后我想了想,这个程序就2个组件:selenium,已经是最新版了,没问题;那么问题极有可能出现在我当时随便在网上找的浏览器驱动。
于是我上网再找了一次浏览器驱动。找到了谷歌和Edge的驱动下载:(因为我的电脑就这俩浏览器)
谷歌:chromedriver.storage.googleapis.com/index.html
Edge:Microsoft Edge Driver - Microsoft Edge Developer
点开一看:好家伙,几十个版本的都有。这时我意识到了可能是我下的驱动的版本跟我的浏览器版本对应不上。于是我根据我的浏览器版本下载对应的谷歌和Edge驱动。结果2个浏览器都能被selenium正常调用。问题解决!