使用Selenium进行Web自动化操作

本文详细介绍了如何使用Selenium进行Web自动化操作,包括环境的搭建(如PyCharm配置和chromedriver下载)、元素定位方法、获取元素信息以及与页面和IPA工具的交互。还特别提到了无界面模式的实现。文中结尾提供了相关技术交流群组的信息以供学习者交流和资源分享。
摘要由CSDN通过智能技术生成

我们可使用Selenium进行Web自动化操作。

一、环境搭建:

1.下载安装Pycharm

2.在Pycharm中新建项目

3.在Pycharm中安装Selenium(FIle->Settings->Project:项目名->Python Interpreter->加号->搜索添加Selenium)

4.下载符合浏览器版本的chromedriver.exe

·114之前chromedriver驱动版本:淘宝镜像

· 115以后chromedriver驱动版本:国内镜像

5.将chromedriver.exe放在项目中

6.编写初始化代码,运行

 import time
  from selenium import webdriver
  from selenium.webdriver.chrome.service import Service
  s = Service("chromedriver.exe")
  browser = webdriver.Chrome(service=s)
  browser.get("http://www.gushiwen.cn")
  time.sleep(10)

二、元素定位

使用find_element或find_elements函数。

1.通过ID

2.通过CLASS_NAME

3.通过TAG_NAME

4.通过CSS_SELECTOR

5.通过XPATH

6.通过LINK_TEXT

7.通过NAME

使用示例如下:

 import time
  from selenium import webdriver
  from selenium.webdriver.chrome.service import Service
  from selenium.webdriver.common.by import By
  s = Service("chromedriver.exe")
  browser = webdriver.Chrome(service=s)
  browser.get("http://www.gushiwen.cn")
  input = browser.find_element(By.ID,"txtKey")
  input.send_keys("李白")
  inputBtn = browser.find_element(By.CSS_SELECTOR,"#search > form > input[type=submit]:nth-child(3)")
  inputBtn.click()
  time.sleep(10)

三、获取元素信息

1.xx.text

2.xx.get_attribute("yy")

3.xx.tag_name

使用示例如下:

 btn = browser.find_element(By.LINK_TEXT,"古籍")
  print(btn.get_attribute("href"))

四、与页面交互

1.xx.click()

2.xx.send_keys(yy)

3.browser.execute_script(js)

4.browser.back()

5.browser.refresh()

6.browser.quit()

使用示例如下:

 import time
  from selenium import webdriver
  from selenium.webdriver.chrome.service import Service
  from selenium.webdriver.common.by import By
  s = Service("chromedriver.exe")
  browser = webdriver.Chrome(service=s)
  browser.get("http://www.gushiwen.cn")
  time.sleep(8)
  browser.refresh()
  time.sleep(5)
  input = browser.find_element(By.ID,"txtKey")
  input.send_keys("李白")
  inputBtn = browser.find_element(By.CSS_SELECTOR,"#search > form > input[type=submit]:nth-child(3)")
  inputBtn.click()
  js = "document.documentElement.scrollTop = '10000'"
  browser.execute_script(js)
  time.sleep(5)
  browser.back()
  time.sleep(5)
  browser.quit()
  time.sleep(5)

五、与IPA工具交互

需要在项目目录加上chromedriver.exe,注意填写入参和出参。

代码示例如下:

 import time
  from selenium import webdriver
  from selenium.webdriver.chrome.service import Service
  from selenium.webdriver.common.by import By
  s = Service("chromedriver.exe")
  browser = webdriver.Chrome(service=s)
  browser.get("http://www.gushiwen.cn")
  input_field = browser.find_element(By.ID,"txtKey")
  input_field.send_keys(input_val)
  inputBtn = browser.find_element(By.CSS_SELECTOR,"#search > form > input[type=submit]:nth-child(3)")
  inputBtn.click()
  res = browser.find_element(By.CSS_SELECTOR,"body > div.main3 > div.left > div.sonspic > div.cont > p:nth-child(3)")
  output_val = res.text
  time.sleep(5)

六、无界面操作

代码示例如下:

 from selenium import webdriver
  from selenium.webdriver.chrome.options import Options
  options = Options()
  options.add_argument("--headless")
  options.add_argument("--disable-gpu") #减少BUG
  options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
  browser = webdriver.Chrome(options=options)
  browser.get("http://www.gushiwen.cn")
  browser.save_screenshot("gushiwen.png")

ps:在处理文件路径时,r前缀很有用。它可以确保路径中的反斜杠在字符串中保持不变,而不会被解释为转义字符。这在处理Windows文件路径时尤其有用。

​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值