微信支付平台上进行退款操作

这段代码通过Selenium模拟在微信支付平台上的退款流程,包括查询订单、输入退款条件、点击退款、短信验证,并处理多页订单直至全部退款完成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这段代码主要是用selenium模拟在微信支付平台上进行退款操作。代码主要的逻辑是:首先进入查询订单页面,输入退款条件并查询出符合条件的订单;然后逐一点击已退款按钮对订单进行退款,并进行短信验证等操作;最后翻页继续对下一页的订单进行退款,直到全部退款完成。

class Test_click():
    def setup(self):
        self.driver = webdriver.Chrome('chromedriver.exe')
        self.driver.maximize_window()
        # 隐式等待10秒
        self.driver.implicitly_wait('10')

    # def teardown(self):
    #     self.driver.quit()

    def test_fromele(self):
        self.driver.get('https://pay.weixin.qq.com/index.php/core/info')
        time.sleep(10)
        self.driver.find_element(By.XPATH, '//*[@class="selected"]/../li[2]/a').click()
        time.sleep(2)
        self.driver.find_element(By.NAME, 'begin_time').clear()
        self.driver.find_element(By.NAME, 'begin_time').send_keys('2022-07-17 00:00:00')
        self.driver.find_element(By.XPATH, '//*[@id="tradeQueryDateBegin"]/i').click()
        self.driver.find_element(By.NAME, 'end_time').clear()
        self.driver.find_element(By.NAME, 'end_time').send_keys('2022-08-16 23:59:59')
        self.driver.find_element(By.XPATH, '//*[@id="tradeQueryDateEnd"]/i').click()
        window = self.driver.current_window_handle
        self.driver.find_element(By.ID, 'moreSearch').click()
        self.driver.find_element(By.NAME, 'min_amount').send_keys(0)
        self.driver.find_element(By.NAME, 'max_amount').send_keys(2)
        self.driver.find_element(By.XPATH,'//*[@id="batchQuery"]/div[5]/div/div/a[1]').click()
        time.sleep(10)
        elements = self.driver.find_elements(By.XPATH, '//*[@class="returnBn"]')
        print(elements)
        for ele in elements:
            print(ele)
            ele.click()
            windowns = self.driver.window_handles
            if windowns[1] != window:
                self.driver.switch_to.window(windowns[1])
            else:
                self.driver.switch_to.window(windowns[0])
            value = self.driver.find_element(By.XPATH, '//*[@id="app"]/div/div[2]/div[2]/div[1]/div[2]/div/div[3]/div/p/span[1]').text
            if float(value.replace(',', '')) < 2:
                self.driver.find_element(By.NAME, 'refund_amount').send_keys(value)
                self.driver.find_element(By.ID, 'commitRefundApplyBtn').click()
                self.driver.find_element(By.XPATH, '//*[@id="sec_verify_dialog"]/div[1]/div/div[1]/div/input').send_keys('123456')
                try:
                    time.sleep(3)
                    self.driver.find_element(By.ID, 'id_send_sms').click()
                    time.sleep(15)
                except Exception:
                    time.sleep(5)
            else:
                self.driver.close()
                self.driver.switch_to.window(window)
                continue
                time.sleep(2)
            self.driver.find_element(By.XPATH,'//*[@class="btn btn-primary align-center"]').click()
            time.sleep(5)
            self.driver.close()
            time.sleep(5)
            windowns_new = self.driver.window_handles
            if len(windowns_new) > 1:
                if windowns_new[0] == window:
                    self.driver.switch_to.window(windowns_new[1])
                    self.driver.close()
                else:
                    self.driver.switch_to.window(windowns_new[0])
                    self.driver.close()
                    self.driver.switch_to.window(window)
            else:
                self.driver.switch_to.window(window)
        try:
            elements_new = self.driver.find_element(By.XPATH, '//*[@class="btn page-next"]')
            while elements_new:
                elements_new.click()
                elements = self.driver.find_elements(By.XPATH, '//*[@class="returnBn"]')
                print(elements)
                for ele in elements:
                    print(ele)
                    ele.click()
                    windowns = self.driver.window_handles
                    if windowns[1] != window:
                        self.driver.switch_to.window(windowns[1])
                    else:
                        self.driver.switch_to.window(windowns[0])
                    value = self.driver.find_element(By.XPATH,
                                                     '//*[@id="app"]/div/div[2]/div[2]/div[1]/div[2]/div/div[3]/div/p/span[1]').text
                    if float(value) < 2:
                        self.driver.find_element(By.NAME, 'refund_amount').send_keys(value)
                        self.driver.find_element(By.ID, 'commitRefundApplyBtn').click()
                        self.driver.find_element(By.XPATH,
                                                 '//*[@id="sec_verify_dialog"]/div[1]/div/div[1]/div/input').send_keys(
                            '123456')
                        try:
                            time.sleep(3)
                            self.driver.find_element(By.ID, 'id_send_sms').click()
                            time.sleep(15)
                        except Exception:
                            time.sleep(5)
                    else:
                        self.driver.close()
                        self.driver.switch_to.window(window)
                        continue
                        time.sleep(2)
                    self.driver.find_element(By.XPATH, '//*[@class="btn btn-primary align-center"]').click()
                    time.sleep(5)
                    self.driver.close()
                    time.sleep(5)
                    windowns_new = self.driver.window_handles
                    if len(windowns_new) > 1:
                        if windowns_new[0] == window:
                            self.driver.switch_to.window(windowns_new[1])
                            self.driver.close()
                        else:
                            self.driver.switch_to.window(windowns_new[0])
                            self.driver.close()
                            self.driver.switch_to.window(window)
                    else:
                        self.driver.switch_to.window(window)
                elements_new = self.driver.find_element(By.XPATH, '//*[@class="btn page-next"]')
        except:
            print('没有下一页')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值