【问题标题】:How to use Selenium with Python?如何在 Python 中使用 Selenium?
【发布时间】:2013-07-06 15:09:20
【问题描述】:

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

【问题讨论】:

    标签: python selenium selenium-webdriver automation


    【解决方案1】:

    你是说 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()

    下面的示例显示了登录页面自动化

    #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 中打开 URL
    3. 按 F12 打开 Firepath 开发者实例
    4. 在下面的浏览器窗格中选择 Firepath 并选择“xpath”选择
    5. 将鼠标光标移动到网页上的元素
    6. 在 xpath 文本框中,您将获得对象/元素的 xpath。
    7. 复制粘贴 xpath 到脚本。

    运行脚本-

    python Login.py
    

    您也可以使用 CSS 选择器代替 xpath。在大多数情况下,CSS 选择器比 xpath 稍快一些,并且通常比 xpath 更受欢迎(如果您正在与之交互的元素上没有 ID 属性)。

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

    find_element_by_css_selector(css_selector) 
    

    【讨论】:

    • 感谢我让 pip 开始工作,并以这种方式安装了 selenium。我从 IDE 中将一个测试用例导出为 .py 文件,当我尝试重新打开它时,我收到了 Error loading test case: no command found 错误。
    • >>>> 重新打开文件是什么意思? >>>>你的意思是执行IDE记录的python脚本吗? >>> 你想达到什么目的?
    • 基本上是这样的:1.) Record simple script in IDE, export to Python, 2.) Edit the script with Python code 3.) Run the script through the IDE 还有,有没有其他方法可以运行 Python 脚本?
    • @AbhishekKulkarni- 我有一个问题- 我是否应该像我们使用 Indigo 一样使用 IDLE 之类的 IDE?还是其他方式?
    • @geeko_zac - 没关系。无论您发现哪种 IDE 都易于使用。代码质量很重要:)
    【解决方案2】:

    selenium 有很多来源 - 这里是一个简单易用的好资源Selenium,这里也是一个示例 sn-p Selenium Examples

    您可以找到很多使用 selenium 的好资源,设置并开始使用它并不难。

    【讨论】:

      【解决方案3】:

      你只需要导入 selenium 包,你可以在命令提示符下使用命令来完成

      pip install selenium
      

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

      例如:

      import selenium 
      print(selenium.__filepath__)
      

      这只是您在开始检查 selenium 的文件路径时可以使用的一般命令

      【讨论】:

        猜你喜欢
        • 2021-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-11
        • 2020-03-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多