【问题标题】:Selenium-Python-ChromeBrowser Launch works when executed in python IDE but it does not when executed from PyDev(Eclipse)Selenium-Python-ChromeBrowser Launch 在 python IDE 中执行时有效,但在 PyDev(Eclipse) 中执行时无效
【发布时间】:2018-07-05 11:40:29
【问题描述】:

软件详情

  1. 操作系统:Mac OSX EL Capitan
  2. Eclipse Neon.3 发布 (4.6.3)
  3. Python 解释器:3.6
  4. Chrome 版本:63.0.3239.132
  5. Chrome 驱动程序版本:ChromeDriver 2.35

当从 python IDLE chrome 在 selenium-python 代码下执行时,成功启动 gmail.com。 从 PyDev(Eclipse) 执行时,chrome 启动 gmail.com 并立即关闭浏览器。请告知可能是什么问题和可能的解决方案

from selenium import webdriver
import os
class pySelChrome():
    '''
    classdocs
    '''


    def openChrome(self):
        '''
        Constructor
        '''
        chromeDriverPath = "/Users/XX/Documents/workspace/PySelenium/pySelPack/chromedriver"
        os.environ["webdriver.chrome.driver"]=chromeDriverPath
        os.environ["webdriver.chrome.driver"]="/Users/XX/Documents/workspace/PySelenium/pySelPack/chromedriver"
        driver = webdriver.Chrome(chromeDriverPath)
        driver.get("http://gmail.com")
        driver.implicitly_wait(30)
        driver.fullscreen_window()
        return driver
        

psc = pySelChrome()
psc.openChrome()

但是没有类定义的相同代码在 PyDev(Eclipse) 中可以正常工作。

from selenium import webdriver
import os

chromeDriverPath = "/Users/XX/Documents/workspace/PySelenium/pySelPack/chromedriver"
os.environ["webdriver.chrome.driver"]=chromeDriverPath
os.environ["webdriver.chrome.driver"]="/Users/XX/Documents/workspace/PySelenium/pySelPack/chromedriver"
driver = webdriver.Chrome(chromeDriverPath)
driver.get("http://gmail.com")
driver.implicitly_wait(30)
driver.fullscreen_window()

【问题讨论】:

    标签: python eclipse google-chrome selenium


    【解决方案1】:

    即使我从类定义中删除 (),也会出现同样的问题。还添加了 main 方法。请参阅下面的代码和建议。

    from selenium import webdriver
    import os
    
    
    
    class pySelChrome:
        '''
        classdocs
        '''
    
    
        def openChrome(self):
            '''
            Constructor
            '''
            chromeDriverPath = "/Users/XX/Documents/workspace/PySelenium/pySelPack/chromedriver"
            os.environ["webdriver.chrome.driver"]=chromeDriverPath
            os.environ["webdriver.chrome.driver"]="/Users/XX/Documents/workspace/PySelenium/pySelPack/chromedriver"
            driver = webdriver.Chrome(chromeDriverPath)
            driver.get("http://gmail.com")
            driver.implicitly_wait(30)
            driver.fullscreen_window()
            return driver
    
    
    if __name__ == "__main__":
        # execute only if run as a script
        psc = pySelChrome()
        psc.openChrome()
    

    【讨论】:

      【解决方案2】:

      正确的类定义语法应该是:class ClassName: 而不是class CLassName():,去掉()

      如果作为脚本运行,您错过了作为条目的 main() 函数。

      if __name__ == "__main__":
          # execute only if run as a script
          psc = pySelChrome()
          psc.openChrome()
      

      【讨论】:

      • 我删除了 ():从 eclipse 执行时仍然是同样的问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-31
      • 2015-01-06
      • 1970-01-01
      相关资源
      最近更新 更多