roujennie 2023-05-29 17:13 采纳率: 80.8%
浏览 19
已结题

我在用selenium写一个抢购脚本,流程是点击座位完等待一定的时间后再点击购买,可是脚本运行后并没有等待5秒,并且完成这段代码后直接浏览器都关闭了,如何解决?

我在用selenium写一个抢购脚本,流程是点击座位完等待一定的时间后再点击购买,可是脚本运行后并没有等待5秒,并且完成这段代码后直接浏览器都关闭了。
如果使用time.sleep(5)的话会报错AttributeError: 'str' object has no attribute 'sleep'


            while True:
                # 获取当前的时间
                time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
                # 进行当前时间和抢购时间的对比,到时间了开始抢购
                if time >= buytime:
                    # 到时间了点击结算按钮
                    print("###正在抢票###")
                    #等座位选完之后再点击立即购买
                    print("点击座位")
                    self.driver.find_element(By.CSS_SELECTOR, ".ticketsbuy").click()
                    print("点击座位完成")
                    #等座位选完之后等待5秒再点击立即购买
                    self.driver.implicitly_wait(5)
                    print("点击立即购买")
                    self.driver.find_element(By.ID, "buy").click()
                    print("点击立即购买完成")
                    break
                else:
                    self.driver.refresh()
  • 写回答

1条回答 默认 最新

  • 阳光宅男xxb 2023-05-29 17:39
    关注

    你的变量名称不能叫time ,time.sleep使用的是time模块,否则你现在变量名称time和要导入的time模块名称会冲突:

    import  time
    
    while True:
        # 获取当前的时间
        time_s = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
        # 进行当前时间和抢购时间的对比,到时间了开始抢购
        if time_s >= buytime:
            # 到时间了点击结算按钮
            print("###正在抢票###")
            # 等座位选完之后再点击立即购买
            print("点击座位")
            self.driver.find_element(By.CSS_SELECTOR, ".ticketsbuy").click()
            print("点击座位完成")
            # 等座位选完之后等待5秒再点击立即购买
            time.sleep(5)
            print("点击立即购买")
            self.driver.find_element(By.ID, "buy").click()
            print("点击立即购买完成")
            break
        else:
            self.driver.refresh()
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月6日
  • 已采纳回答 5月29日
  • 创建了问题 5月29日