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"是动态的。 展开
但这个控件是动态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"是动态的。 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询