selenium 进行web自动化时,对日期控件的处理

控件1:

控件2:

 

 

 

 

 解决办法:使用js实现  

//*[@for='saleChannelList']/../following-sibling::div[2]//input[@class='el-range-input'][1] 为元素定位,直接添加输入内容
js = f"""var bm = document.evaluate(\"//*[@for='saleChannelList']/../following-sibling::div[2]//input[@class='el-range-input'][1]\", document).iterateNext();
                    bm.value='{startDate}'"""
self.driver.execute_script(js)

 

    def selectTimeFromJs(self,ele,value,isClick=True):
        '''
        通过js去掉时间控件的readOnly 属性,直接输入时间,并点击空白处(必须要有这个操作,没有时,输入无效)
        :param ele: 时间选择框元素
        :param value: 时间
        :param isClick: True时需点击空白处
        :return:
        '''
        js = """
                arguments[0].readOnly = false;# 去除只读属性
                #arguments[0].value = arguments[1];
             """
        self.driver.execute_script("arguments[0].readOnly = false;",ele)
        ele.click()
        ele.clear()
        time.sleep(0.5)
        ele.send_keys(value)
        if isClick:
            # # 鼠标左键点击, 200为x坐标, 100为y坐标
            ActionChains(self.driver).move_by_offset(100, 50).click().perform()

 

posted @ 2020-10-19 16:34  爱语默  阅读(578)  评论(0编辑  收藏  举报