如何在Python中使用Selenium?

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

Carpetfizz asked 2020-02-21T21:38:27Z
2个解决方案
72 votes

您是说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) 
Abhishek Kulkarni answered 2020-02-21T21:40:08Z
7 votes

硒的来源很多-这是简单使用硒的好来源,这也是示例硒的示例

您可以找到许多使用硒的好方法,但要进行设置并开始使用它并不难。

Serial answered 2020-02-21T21:40:33Z
translate from https://stackoverflow.com:/questions/17540971/how-to-use-selenium-with-python