Selenium 中Web input type="hidden" 对value赋值

自己记下。
碰上问题web HTML代码
这个Web页面中利用input type=“hidden” 向服务器上传 value 值(比如=“1H"),在页面是不可见的。Python selenium虽然可以定位,但改不了value值。而显示在屏幕上的 input type=“text” name=“occupation_disp” 确定的value仅用于显示(readonly=“readonly”,用户无法输入),它通过JS调用 从一个“单选”按钮选择职业信息(中文名称)会给到name="occupation_disp"的value值 ,然后把中文名称的职业信息对应的编号传给name="occupation"的input value值,并向服务器提交。
明白了这个道理:就有办法解决了。

核心代码如下:

           for k,va in gl_pers_dic.items():
                epos=gl_col_dict[k]+str(i)  #取出 "M1"等excel文档的列元素位置
                fval=ws[epos].value  #取出对 应的值,如M1=“居民身份证或临时身份证”
                if (len(str(fval))>0) and ( fval is not None):    #不是空或者None
                    if 'select' in va :   # select 定位 xpath表示法://select[@name='citp']
                        wpos=Select(browser.find_element_by_xpath(va))   # 下拉框操作
                        wpos.select_by_visible_text(fval)      #写入数据
                    else:   # input 定位
                        inpu_xpos=browser.find_element_by_xpath(va)
                        if k in ("职业"):     #2019-08-28职业信息改成只读了,表示成20000-专业技术人员
                            key_val=fval.split('-')[0]   #key_val='20000'
                            fval=fval.split('-')[1]    #fval="20000-专业技术人员"
                            jss="document.getElementsByName('occupation')[0].value='"+key_val+"'"
                            browser.execute_script(jss)
                            browser.execute_script("arguments[0].removeAttribute('readOnly')",inpu_xpos)
                            
                        inpu_xpos.clear()   #清理原页面输入框中的数据
                        inpu_xpos.send_keys(fval)  #把个人web新值写入

核心:原生Js是Python Selenium支持的。我这儿是name定位,常见的都是ID定位,所以要根据自己碰到 HTML代码改。
jss=“document.getElementsByName(‘occupation’)[0].value=’”+key_val+"’"

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值