hisense12396 2019-02-11 14:03 采纳率: 0%
浏览 1962

Python selenium,无法定位页面中的日期选择框,尝试用JS关掉只读失败?

0、这是需要定位的位置:

<input class="form-control listDate startDate" readonly="readonly" name="startDate" value="" type="text">

1、Python selenium,无法定位页面中的日期选择框,面向百度编程后发现可能是句柄的位置不对,于是加上了

el_iframe=el_ywjg=browser.find_element_by_id('frame_content')
browser.switch_to.frame('frame_content')

2、仍然定位不到日期选择框,继续搜索后觉得可能是因为“readonly”属性,于是决定使用js去掉,但是这个框没有Id,于是换用getElementsByName(半路出家,完全不懂js,不知道对不对),于是变成了

js="document.getElementsByName('startDate').removeAttribute('readonly')"
browser.execute_script(js)

_报错:TypeError: document.getElementsByName(...).removeAttribute is not a function
3、查菜鸟教程发现“HTML DOM Document 对象方法”中,document.getElementById()返回的是一个对象,而我用的getElementsByName()返回的是一个对象集合,所以加上了一个[0],变成:

js="document.getElementsByName('startDate')[0].removeAttribute('readonly')"
browser.execute_script(js)
```__
_TypeError: document.getElementsByName(...)[0] is undefined
无计可施了,而且这个问题去搜索都搜不出来了……请各位前辈指教。_
  • 写回答

2条回答

  • Yuan_BT 2019-02-12 14:31
    关注


    for js in document.getElementsByName('startDate'):
    js.removeAttribute('readonly')

    看看能否使用

    另外,readonly属性不妨碍selenium读取dom

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog