新濠天地 > 新濠编程网 > 【新濠天地】此时此刻用的版本 2.32.498550,导入

原标题:【新濠天地】此时此刻用的版本 2.32.498550,导入

浏览次数:192 时间:2019-09-23

进入 python安装路径Libsite-packages

Windows webdriver环境搭建 (Chrome)

浏览器:Chrome 版本 64.0.3282.186(正式版本) (32 位)
ChromeDriver:当前用的版本 2.32.498550 下载地址
selenium:selenium-3.11.0-py2.py3-none-any.whl

创建文件夹,库名

操作步骤:

  • 1、将ChromeDriver放在d:python27目录下
  • 2、下载selenium-3.11.0-py2.py3-none-any.whl 并通过pip install file 安装到python环境
  • 3、验证selenium是否安装成功:
    打开python ide ,输入import selenium , 没有报错,成功!
  • 4、创建一个脚本,测试是否能够自动启动Chrome浏览器,自动进行操作

创建py文件,myclass.py

遇到的问题:

新濠天地 1

1、 创建文件名称为selenium.py,导致引入库失败,原因:

原因: 在当前目录有名叫selenium.py的文件,Python会先导入这个文件,然后再导入标准库里面的selenium.py。
解决办法: 可以使用

import selenium 
print selenium.__file__

去看打印出的文件路径,如果不是类型下面的地址
C:Python27libsite-packagesselenium-2.31.0-py2.7.eggselenium__init__.pyc
需要把当前目录下的名叫selenium文件删除或者重命名

创建py文件,__init__.py

2、无法掉起Chrome

原因:没有将ChromeDriver.exe放到 Python27目录下,导致无法掉起Chrome
新濠天地,解决办法: 将ChromeDriver.exe放到Python27目录下就可以了

新濠天地 2

3、 运行错误:

RuntimeWarning: Parent module 'requests' not found while handling absolute import import selenium

报错信息

RuntimeWarning: Parent module '...' not found while handling absolute import
import selenium
RuntimeWarning: Parent module '...' not found while handling absolute import
import time
RuntimeWarning: Parent module '...' not found while handling absolute import
import unittest   

原因及解决办法:

这是一个PyCharmd的已知问题,从2016.2版本就存在,目前为止还没解决。BUG地址
目前的解决办法是使用旧的utrunner.py替换新的utrunner.py

1、先找到pycharm目录
D:Program Files (x86)JetBrainsPyCharm 2016.3.2helperspycharm

2、备份:utrunner.py
3、用旧的utrunner.py替换pycharm目录下的utrunner.py

附上旧版本: utrunner.py

导入自定义库

测试环境

访问百度并进行搜索

# coding:utf-8

import selenium
print selenium.__file__
from selenium import webdriver
from selenium.webdriver.support.ui import Select
import unittest
import time


class Baidu(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(30)
        self.base_url = "http://www.baidu.com"
        self.verificationErrors = []
        self.accept_next_alert = True #是否继续接受下一个警告

    def test_baidu_serach(self):
        u"""百度用例搜索"""
        driver = self.driver
        driver.get(self.base_url+"/")
        driver.find_element_by_id("kw").send_keys("Selenium webdriver")
        driver.find_element_by_id("su").click()
        time.sleep(2)
        driver.close()

    def test_baidu_set(self):
        driver = self.driver
        driver.get(self.base_url+"/gaoji/preferences.html") #进入搜索设置页

        Select(driver.find_element_by_id("nr")).select_by_visible_text(u"每页显示10条")
        time.sleep(2)
        driver.find_element_by_id("save").click()
        time.sleep(2)
        #driver.switch_to_alert().accept()
        driver.switch_to.alert.accept()
        time.sleep(2)
        #保存百度的设置时会会弹出一个确定按钮;我们并没按照常规的方法去定位弹窗上的“确定”按钮,而是使用
        #driver.switch_to_alert().accept()

    def tearDown(self):
        self.driver.quit()
        self.assertEqual([],self.verificationErrors)


if __name__ == "__main__":
    # unittest.main()
    suite = unittest.TestSuite()
    suite.addTest(Baidu("test_baidu_serach"))
    suite.addTest(Baidu("test_baidu_set"))
    unittest.TextTestRunner().run(suite)

运行成功!

遇到的问题:

python版本问题

3.x和2.x的代码注意不要混淆,你要用那个版本就装哪个版本

ModuleNotFoundError: No module named 'XXX'Traceback

可尝试将 from myclass import MyClass,改成from 库名.myclass import MyClass**

本文由新濠天地发布于新濠编程网,转载请注明出处:【新濠天地】此时此刻用的版本 2.32.498550,导入

关键词:

上一篇:切入hello.js所在文件夹

下一篇:没有了