使用Selenium模拟浏览器行为

发表于:2018-10-08 09:57

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:十月狐狸    来源:博客园

分享:
  几个注意点
  必须安装浏览器和浏览器驱动,并且浏览器和浏览器驱动要配到
  即如果使用谷歌浏览器模拟网页行为,则需要下载谷歌浏览器驱动;
  如果使用火狐浏览器模拟网页行为,则需要下载火狐浏览器驱动
  浏览器驱动所在的目录要在环境变量中,或者定义浏览器browser的时候指定驱动的路径
  selenium更多用法
  查找元素
  from selenium import webdriver
  browser = webdriver.Firefox()
  browser.get("https://tieba.baidu.com/index.html")
  new_list = browser.find_element_by_id('new_list')
  user_name = browser.find_element_by_name ('user_name')
  active = browser.find_element_by_class_name  ('active')
  p = browser.find_element_by_tag_name ('p')
  # find_element_by_name 通过name查找单个元素
  # find_element_by_xpath 通过xpath查找单个元素
  # find_element_by_link_text 通过链接查找单个元素
  # find_element_by_partial_link_text 通过部分链接查找单个元素
  # find_element_by_tag_name 通过标签名称查找单个元素
  # find_element_by_class_name 通过类名查找单个元素
  # find_element_by_css_selector 通过css选择武器查找单个元素
  # find_elements_by_name 通过name查找多个元素
  # find_elements_by_xpath 通过xpath查找多个元素
  # find_elements_by_link_text 通过链接查找多个元素
  # find_elements_by_partial_link_text 通过部分链接查找多个元素
  # find_elements_by_tag_name 通过标签名称查找多个元素
  # find_elements_by_class_name 通过类名查找多个元素
  # find_elements_by_css_selector 通过css选择武器查找多个元素
  获取元素信息
  btn_more = browser.find_element_by_id('btn_more')
  print(btn_more.get_attribute('class')) # 获取属性
  print(btn_more.get_attribute('href')) # 获取属性
  print(btn_more.text) # 获取文本值
  元素交互操作
  btn_more = browser.find_element_by_id('btn_more')
  btn_more.click() # 模拟点击,可以模拟点击加载更多
  input_search = browser.find_element(By.ID,'q')
  input_search.clear() # 清空输入
  执行JavaScript
  # 执行JavaScript脚本
  browser.execute_script('window.scrollTo(0, document.body.scrollHeight)')
  browser.execute_script('alert("To Bottom")')
  上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号