Selenium

作者: 咻咻咻滴赵大妞 | 来源:发表于2018-12-30 20:35 被阅读0次

selenium:是一个web的自动化测试工具,可以直接运行在浏览器上,
但是并不自带浏览器,需要有浏览器驱动,selenium可以根据我们的代码指令
让浏览器自动加载页面,这时得到的页面源码是经过浏览器渲染之后的,
然后我们就可以在页面源码中寻找节点(动态加载的网页,模拟登录)

  1. 导包from selenium import webdriver

  2. 加载页面

driver = webdriver.Firefox(
    executable_path='/home/ljh/桌面/driver/geckodriver'
)
  1. 设置为无头浏览器
opt = webdriver.FirefoxOptions()
opt.set_headless()
driver = webdriver.Chrome(
    options = opt,
    executable_path='/home/zwz/Desktop/zwz/chromedriver'
)
  1. 导入容错的模块
from selenium.common import exceptions
try:
    driver.get('https://www.baidu.com/')
except exceptions.TimeoutException as err:
    print(err,'请求超时')
  1. 页面的相关操作:
    Selenium 的 WebDriver提供了各种方法来寻找元素,假设下面有一个表单输入框如下:

<input type="text" name="user-name" id="passwd-id">

获取id标签值

element = driver.find_element_by_id("passwd-id")

获取name标签值

element = driver.find_element_by_name("user-name")

获取标签名值

element = driver.find_elements_by_tag_name("input")

也可以通过XPath来匹配

element = driver.find_element_by_xpath("//input[@id='passwd-id']")

driver.find_element_by_xpath()# 根据xpath路径定位标签(到找单个)

driver.find_elements_by_xpath()# 根据xpath路径定位标签(找所有)

driver.find_element_by_css_selector()# 根据css选择器定位标签

driver.find_element_by_partial_link_text()# 根据标签文本(完整)定位

driver.find_element_by_id()# 根据id寻找节点

driver.find_element_by_class_name()# 根据class属性寻找节点

  • 向下滚动到页面底部

driver.execute_script('window.scrollTo(0,document.body.scrollHeight)')

  • 关闭当前所在的窗口

driver.close()

  • 退出浏览器

driver.quit()

相关文章

网友评论

      本文标题:Selenium

      本文链接:https://www.haomeiwen.com/subject/ashblqtx.html