网络元素对象python变量不能被智能感知识别



我是python和网页抓取的新手。我正在跟随一个教程,我注意到在教程中,当Tim引用Webelement对象智能感知列出了所有可能的函数。然而,当我遵循教程时,我的web元素对象没有返回任何方法,智能感知也没有识别选项。我正在使用最新版本的python 3.9.6 pip版本21.2.3 Selenium版本3.141.0

代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
PATH = "localpath"
driver = webdriver.Chrome(PATH)
HTTPS = "https://"
# hard coded data to test 
siteDomain = "indeed.com"
jobSearch = "Entry Level Software Developer"
locationSearch = "Richmond, VA"
# Goes to Site
driver.get(HTTPS + siteDomain)
# obtains access to elements from website 
searchJob = driver.find_element_by_name("q")
searchLocation = driver.find_element_by_name("l")
# clear text field
searchJob.clear()
searchLocation.clear()
# inputs values into website elements
searchJob.send_keys(jobSearch)
searchLocation.send_keys(locationSearch)
# presses button to search
searchLocation.send_keys(Keys.RETURN)
driver.quit()

当我做司机。我得到了智能感应自动填充选项。当我尝试使用对象searchJob和searchLocation时,我没有得到智能感知自动填充选项。我手动输入searchJob.send_keys(jobSearch) searchLocation.send_keys(locationSearch)。此外,element.clear()也不工作,因为我认为问题是相同的。我希望看到更好地理解更复杂问题的选项。任何帮助都是感激的!

对于element.clear()的问题,以下替换对我有效

searchLocation.send_keys(Keys.CONTROL, "a", Keys.BACK_SPACE)

它只是说选择所有控件a,然后删除它。如果你是在mac上,你可能需要执行COMMAND或类似的命令。

当我重现你在VSC中所做的事情时,我有同样的智能感知问题。然后我在Pycharm CE2021中尝试了它,并让IntelliSense工作得很好。如果你不太依赖VSC,那么你可能想尝试Pycharm作为快速修复。

智能感知是Pylance Language Server默认提供的。您可以切换到其他语言服务器,如JediLSP

settings.json文件中添加:

"python.languageServer": "JediLSP",

最新更新