intellisense无法识别Webelement对象python变量

2024-10-02 08:22:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉python和使用selenium进行web抓取。我在学习一个教程,我注意到在教程中,Tim引用了Webelement对象intellisense,列出了所有可能的函数。然而,当我学习教程时,我的webelement对象没有返回任何方法,intellisense也无法识别这些选项。我使用的是最新版本的python verison 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()

当我执行driver.xxx时,我会得到intellisense自动填充选项。当我尝试使用objects searchJob和searchLocation时,我没有获得intellisense自动填充选项。我手动键入searchJob.send_key(jobSearch)searchLocation.send_key(locationSearch)。另外,element.clear()也不起作用,因为我认为问题是一样的。我希望看到更好地理解更复杂问题的选项。感谢您的帮助


Tags: tofrom版本send选项driverselenium教程
2条回答

默认情况下,Intellisense由Pylance Language Server提供。您可以切换到其他语言服务器,例如JediLSP

将此添加到settings.json文件中:

"python.languageServer": "JediLSP",

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

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

也就是说用控件a选择所有内容,然后删除它。如果你在mac电脑上,你可能需要执行命令之类的操作

当我重现你在VSC中所做的事情时,我对IntelliSense也有同样的问题。然后我在Pycharm CE2021中试用了它,IntelliSense工作得很好。如果您不太喜欢VSC,那么您可能希望尝试Pycharm作为一种快速修复方法

相关问题 更多 >

    热门问题