"""
给刘言测试若href没有但是有onclick方法时如何用js调onclick完成点击操作
"""
import platform
import time

from bs4 import Tag, BeautifulSoup

from base.utils.log import logger
from base.utils.selenuim_helper import init_local_chrome, init_remote_chrome


class JsTestBean():
    def __init__(self):
        self.createDriver()

    def createDriver(self):
        if 'arwin' in platform.system():
            logger.info("检测到系统是Mac系统,启动本地local_driver")
            self.driver = init_local_chrome(load_img=False, headless=False)
            # self.driver = init_remote_chrome(proxy=proxies_selenium, load_img=False, headless=True)

        else:
            logger.info("检测到系统是非Mac系统,启动线上环境local_driver")
            self.driver = init_remote_chrome(load_img=False, headless=True, balance_type='news',
                                             business=self.__class__.__name__)

    def deal(self):
        self.driver.get("https://www.cqggzy.com/xxhz/014001/014001001/zbggjyxx-page.html")
        bs4 = BeautifulSoup(self.driver.page_source, "lxml")
        self.js_deal(bs4.select_one("#showList > tr:nth-child(3) > td.list-td.w640 > a"))

    def js_deal(self, aTag):
        if type(aTag) != Tag:
            raise Exception("请传入一个bs4-Tag")
        if not aTag.get("onclick"):
            print("无onclick方法,跳过标签")
            return False
        js_str = aTag.get("onclick")
        print(js_str)
        self.driver.execute_script(js_str)
        time.sleep(0.5)
        return True


if __name__ == '__main__':
    JsTestBean().deal()
