51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 854|回复: 0
打印 上一主题 下一主题

[python] Python操作selenium库模拟网页点击

[复制链接]
  • TA的每日心情
    无聊
    5 小时前
  • 签到天数: 939 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-12-7 15:23:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    为什么想要实现模拟点击
      最近我的一个同学找我想让我帮他做一个脚本,就是模拟在网页中购买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库,网页的一些相关知识,所以想要弄明白这个程序的话,就得把我说的这些点学会。


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-28 14:57 , Processed in 0.064423 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表