如何在Python中使用Selenium?

时间:2013-07-09 05:56:48

标签: python selenium selenium-webdriver

如何设置Selenium以使用Python?我只想用Python编写/导出脚本,然后运行它们。有没有资源可以教我如何做到这一点?我试过谷歌搜索,但我发现的东西要么是指过时版本的Selenium(RC),要么是过时版本的Python。

4 个答案:

答案 0 :(得分:70)

你的意思是Selenium WebDriver? 嗯...

先决条件:根据您的操作系统安装Python

使用以下命令安装

pip install -U selenium

在代码中使用此模块

from selenium import webdriver

您还可以根据需要使用以下许多内容

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException

这是一个更新的答案

我建议你在没有IDE的情况下运行脚本......这是我的方法

  1. 使用IDE查找对象/元素的xpath
  2. 并使用find_element_by_xpath()。click()
  3. 下面的示例显示了登录页面自动化

    #ScriptName : Login.py
    #---------------------
    from selenium import webdriver
    
    #Following are optional required
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import Select
    from selenium.common.exceptions import NoSuchElementException
    
    baseurl = "http://www.mywebsite.com/login.php"
    username = "admin"
    password = "admin"
    
    xpaths = { 'usernameTxtBox' : "//input[@name='username']",
               'passwordTxtBox' : "//input[@name='password']",
               'submitButton' :   "//input[@name='login']"
             }
    
    mydriver = webdriver.Firefox()
    mydriver.get(baseurl)
    mydriver.maximize_window()
    
    #Clear Username TextBox if already allowed "Remember Me" 
    mydriver.find_element_by_xpath(xpaths['usernameTxtBox']).clear()
    
    #Write Username in Username TextBox
    mydriver.find_element_by_xpath(xpaths['usernameTxtBox']).send_keys(username)
    
    #Clear Password TextBox if already allowed "Remember Me" 
    mydriver.find_element_by_xpath(xpaths['passwordTxtBox']).clear()
    
    #Write Password in password TextBox
    mydriver.find_element_by_xpath(xpaths['passwordTxtBox']).send_keys(password)
    
    #Click Login button
    mydriver.find_element_by_xpath(xpaths['submitButton']).click()
    

    还有另一种方法可以找到任何对象的xpath -

    1. 在firefox中安装Firebug和Firepath插件
    2. 在Firefox中打开网址
    3. 按F12打开Firepath开发人员实例
    4. 在下面的浏览器窗格中选择Firepath,然后选择“xpath”
    5. 选择
    6. 将鼠标光标移动到网页上的元素
    7. 在xpath文本框中,您将获得一个对象/元素的xpath。
    8. 将粘贴xpath复制到脚本。
    9. 运行脚本 -

      python Login.py
      

      您也可以使用CSS选择器而不是xpath。在大多数情况下,CSS选择器比xpath略快,并且通常优于xpath(如果您正在与之交互的元素上没有ID属性)。

      如果将光标移动到对象,Firepath还可以将对象的定位器捕获为CSS选择器。您必须更新代码以使用CSS选择器方法的等效查找 -

      find_element_by_css_selector(css_selector) 
      

答案 1 :(得分:7)

硒有很多来源 - 这是一个很好用的简单使用Selenium,这里也是一个示例代码段Selenium Examples

你可以找到许多使用硒的好来源,设置它并开始使用它并不难。

答案 2 :(得分:0)

您只需要导入硒包,即可使用命令从命令提示符处进行操作

pip install selenium

当您必须在任何IDE中使用它时,只需导入此软件包,就无需导入其他文档

例如:

import selenium 
print(selenium.__filepath__)

这只是您开始检查硒文件路径时可以使用的通用命令

答案 3 :(得分:-1)

我有另一个解决方案。您可以使用一些有用的IDE,例如Pycharm,当您使用此IDE时,您不需要某些复杂的方法,如pip-install。因此,这些代码将以一种简单的方式得到支持:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException