【问题标题】:Selenium program execution does not start using Python ClassSelenium 程序执行不使用 Python 类开始
【发布时间】:2021-12-18 19:21:48
【问题描述】:

这里是代码

class InstogramBot():

    def __init__(self, username, password):
        self.username = username
        self.password = password
        self.driver = webdriver.Chrome()
    def close_browser(self):
        self.driver.get("https://www.instagram.com/")
        time.sleep(5)
        name_input = self.driver.find_element_by_name("username")
        name_input.send_keys(username)
        time.sleep(2)
        password_input = self.driver.find_element_by_name("password")
        password_input.send_keys(password)
        time.sleep(2)
        self.driver.find_element_by_xpath('//*[@id="loginForm"]/div/div[3]/button/div').click()
        time.sleep(7)
        self.driver.close()
        self.driver.quit()

Selenium 不显示,甚至不打开网络驱动程序

控制台快照:

【问题讨论】:

  • 这是你的全部代码吗?/你实例化了这个类吗?如果您不实例化您的类,则不会创建任何对象,也不会运行任何代码。您需要创建对象并运行所需的方法。
  • 非常感谢,您能准确地展示一下它的外观吗?我只是一个初学者

标签: python selenium class selenium-webdriver python-class


【解决方案1】:

如果你没有驱动对象,这个

self.driver.get("https://www.instagram.com/")

应该会导致编译时错误。

修复:

请从here下载最新的chromedriver

Latest stable release: ChromeDriver 95.0.4638.54

下载后,将其放入某个目录。

并像这样使用它:

driver_path = r'C:\\Users\\userID\\*****\\Desktop\\Automation\\chromedriver.exe'
self.driver = webdriver.Chrome(driver_path)
self.driver.get("https://www.instagram.com/")

【讨论】:

    【解决方案2】:

    在使用 Python 时,您需要考虑以下几点:

    • Python 是一种面向对象的编程语言,Python 中的所有内容都表示为一个对象及其属性和方法。
    • Python 中的 Class 是对象构造函数,即创建对象的机制。

    你的程序

    您编写的代码块包括的定义和唯一的方法

    要启动一个成功的执行,你需要创建一个实例,即类的对象InstogramBot()

    bot = InstogramBot("Рома", "Рома")
    

    最后需要通过对象调用方法close_browser()

    bot.close_browser()
    

    解决方案

    您的有效代码块将是:

    from selenium import webdriver
    
    class InstogramBot():
    
        def __init__(self, username, password):
        self.username = username
        self.password = password
        self.driver = webdriver.Chrome()
    
        def close_browser(self):
        self.driver.get("https://www.instagram.com/")
        time.sleep(5)
        name_input = self.driver.find_element_by_name("username")
        name_input.send_keys(username)
        time.sleep(2)
        password_input = self.driver.find_element_by_name("password")
        password_input.send_keys(password)
        time.sleep(2)
        self.driver.find_element_by_xpath('//*[@id="loginForm"]/div/div[3]/button/div').click()
    
    
    bot = InstogramBot("Рома", "Рома")
    bot.close_browser()
    

    【讨论】:

      猜你喜欢
      • 2015-12-14
      • 1970-01-01
      • 2014-07-16
      • 2018-02-16
      • 2017-08-01
      • 1970-01-01
      • 2020-04-28
      • 1970-01-01
      • 2012-12-11
      相关资源
      最近更新 更多