Selenium webdriver 给动态ID的日历控件赋值(python)

我查到了一个给只读日历控件赋值的方法,但需要用到js='document.getElementByID这个方法。但这个控件是动态ID,无法通过ID去捕捉。只能通过Xpat... 我查到了一个给只读日历控件赋值的方法,但需要用到js='document.getElementByID这个方法。
但这个控件是动态ID,无法通过ID去捕捉。只能通过Xpath。但是这样又用不了以下的方法:(ps:尝试把Id改成Xpath)
参考脚本:
#去除只读
js='document.getElementByXpath("//table[@id="trackingList"]/tbody/tr[3]/td[4]/div/span/input").removeAttribute("readonly");'
driver.execute_script(js)
#赋值
js_value='document.getElementByXpath("//table[@id="trackingList"]/tbody/tr[3]/td[4]/div/span/input").value="2018-07-30"'
driver.execute_script(js_value)
-------------分割线----------
尝试第二种方法:先通过find_element_by_xpath定位控件,然后点击,点开控件 driver.find_element_by_xpath("//table[@id='trackingList']/tbody/tr[3]/td[4]/div/span/input").click()
然后,我尝试用以下代码分别点击【其中一个日期】,【确定】按钮,【今天】按钮。均无效。应该是不能对第三方控件进行操作。
#driver.find_element_by_xpath("//table[@class='WdayTable']/tbody/tr[4]/td").doubleClick()
#driver.find_element_by_id("dpOkInput").click()
driver.find_element_by_id("dpTodayInput").click()

我的问题:怎么样才能对一个动态ID的第三方控件赋值?
比如以下这个控件。
<input placeholder="" tptype="date" style="width:300px" class="nav-search-input" value="" id="_omoj6_4" onfocus="WdatePicker({maxDate:'',dateFmt:'yyyy-MM-dd',readOnly:true});" autocomplete="off" readonly="" type="text">
注意:这里的id="_omoj6_4"是动态的。
展开
 我来答
渐次与消逝
2018-07-12
知道答主
回答量:23
采纳率:75%
帮助的人:9万
展开全部
首先js是没有getElementByXpath这个方法的,你可以看看是不是有frame标签没切进去。或者用document.querySelector('input.nav-search-input')试试看看能不能获取到控件
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式