在python中使用selenium库实现网页模拟点击

发表于:2022-12-07 09:29

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

 作者:シバ鳥    来源:博客园

  为什么想要实现模拟点击
  最近我的一个同学找我想让我帮他做一个脚本,就是模拟在网页中购买iphone14pro的脚本,然后他给我发了一条连接,我看了一下,兴趣就上来了,于是也就做了这样一个小项目。废话也不多说,直接上代码,至于关于selenium库的一些相关知识内容,我会在随笔最后附上链接。
  代码部分
  from selenium import webdriver
  from selenium.webdriver.firefox.service import Service
  from selenium.webdriver.common.by import By
  import time
  class autopurchase(webdriver.Firefox):
      def __init__(self):
          super(autopurchase, self).__init__()
          self.openweb()
          self.auto_click_purchase()
          self.type_select()
          self.purchase()
      # 打开网址
      def openweb(self):
          self.s = Service('D:\\autopurchase\\geckodriver.exe')
          self.driver = webdriver.Firefox(service=self.s)
          self.url = u'https://www.apple.com.cn/iphone-14-pro'
          self.driver.get(self.url)
          self.implicitly_wait(10)
          time.sleep(1)
      # 模拟点击购买
      def auto_click_purchase(self):
          self.click_purchase = self.driver.find_element(By.XPATH,value='/html/body/nav[2]/div/div[2]/div[2]/div[2]/div[2]/a')
          self.driver.implicitly_wait(10)
          self.click_purchase.click()
      # 跳转到‘https://www.apple.com.cn/shop/buy-iphone/iphone-14-pro’页面
      # 选择类型
      def type_select(self):
          # 选择pro类型
          self.driver.implicitly_wait(10)
          self.elem_pro = self.driver.find_element(By.XPATH,value='/html/body/div[2]/div[4]/div[4]/div[3]/div[2]/div[2]/div/div[1]/div[1]/div[2]')
          self.elem_pro.click()
          # 选择颜色
          self.driver.implicitly_wait(10)
          self.color = self.driver.find_element(By.XPATH,value='/html/body/div[2]/div[4]/div[4]/div[3]/div[2]/div[2]/div/div[2]/div/ul/li[4]')
          self.color.click()
          # 选择内存
          self.driver.implicitly_wait(10)
          self.memory = self.driver.find_element(By.XPATH,value='/html/body/div[2]/div[4]/div[4]/div[3]/div[2]/div[2]/div/div[3]/div[1]/div[2]')
          self.memory.click()
          # 选择是否需要折扣
          self.driver.implicitly_wait(10)
          self.choose_if_discount = self.driver.find_element(By.XPATH,value='/html/body/div[2]/div[4]/div[4]/div[3]/div[3]/div[1]/div[2]/div[1]/div/div/div/div[2]')
          self.choose_if_discount.click()
          # 选择是否需要加入applecare计划
          self.driver.implicitly_wait(10)
          self.choose_if_applecare = self.driver.find_element(By.XPATH,value='/html/body/div[2]/div[4]/div[4]/div[3]/div[3]/div[3]/div/div/div[1]/div[1]/fieldset/div/div/div[2]')
          self.choose_if_applecare.click()
      # 购买流程
      def purchase(self):
          self.driver.implicitly_wait(10)
          self.add_item = self.driver.find_element(By.NAME,value='add-to-cart')
          self.add_item.click()
          self.driver.implicitly_wait(10)
          self.element_check = self.driver.find_element(By.XPATH,value='/html/body/div[2]/div[4]/div[2]/div/div/div/div[2]/div/form/button')
          self.element_check.click()
          self.driver.implicitly_wait(10)
          self.paymentbtn = self.driver.find_element(By.ID, value='shoppingCart.actions.navCheckout')
          self.paymentbtn.click()
          # 以游客模式
          self.driver.implicitly_wait(10)
          self.guest = self.driver.find_element(By.ID, value='signIn.guestLogin.guestLogin')
          self.guest.click()
  if __name__ == '__main__':
      autopurchase()
  关于这个程序
  程序中的代码在学习selenium库的具体用法后是可以自己修改并且使用的,代码相关的注释也很清楚,所以并不需要过分清楚的解释。这个程序的代码部分我只写到了从点击购买到结账的位置,相当于是一个简单的购买iphone14pro的一个代码模板,如果有兴趣的话可以在这上面进行相关的调试和修改。至于想要实现这种模拟点击需要学习的相关知识有python的一些基本语句使用,类的相关使用,selenium库,网页的一些相关知识,所以想要弄明白这个程序的话,就得把我说的这些点学会。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号