我尝试将价格填充到输入元素中。 我尝试了很多方法,但是它们都失败了,我意识到它可能会被另一个元素覆盖。 当我将鼠标指针移到该字段时,它会自动显示一个工具提示。而且我还看到检查框中出现了一些HTML代码行。
图片1:未将鼠标指向该字段时的屏幕。
图片2:当我将鼠标指针移到该字段时我的屏幕
这是我的一些尝试:
price=browserdriver.find_element_by_xpath("//*[@id='inputProductPrice']")
driver.execute_script('arguments[0].innerHTML = "100000";', price)
结果:无任何错误
或
price=browserdriver.find_element_by_xpath("//*[@id='inputProductPrice']")
browserdriver.execute_script("$(arguments[0]).click();", price)
price.send_keys("10000")
或
price=WebDriverWait(browserdriver, 10).until(EC.element_to_be_clickable((By.XPATH,"//input[@id='inputProductPrice']")))
price.click()
price.send_keys("10000")
或
price=browserdriver.find_element_by_xpath("//*[@id='inputProductPrice']")
price.click()
price.send_keys("10000")
或
price=browserdriver.find_element_by_xpath("//*[@id='inputProductPrice']")
actions.move_to_element(price).click(price).perform()
price.send_keys("10000")
我确定XPath是正确的,并且该元素在屏幕上,因为我可以将key发送到该行中的相似字段(图1中带有蓝色突出显示框的名为“ 2”的字段)。
html:
<div class="col-md-2">
<input type="text" class="form-control" placeholder="Nhập giá" id="inputProductPrice" title="" data-toggle="tooltip" data-original-title="(Trên 8.000 VNĐ)" data-bind="moneyMask: ProductPriceForAll">
</div>
请帮我克服这个限制。谢谢
添加的单词:此字段上方的某些字段也具有一些工具提示结构,但是我可以通过上述某些解决方案轻松而成功地填写内容。但是我不知道为什么这个领域成为强大的约束。例如,此字段(蓝色突出显示框):
答案 0 :(得分:0)
您应该尝试使用ActionChains
和move_to_element_with_offset
:
action = ActionChains(browserdriver)
price = WebDriverWait(browserdriver, 10).until(EC.element_to_be_clickable((By.XPATH,"//input[@id='inputProductPrice']")))
action.move_to_element_with_offset(price, 5, 5)
action.click().perform()
您可以使用偏移量来查找可单击的区域...
希望这对您有帮助!
答案 1 :(得分:0)
我不知道为什么send_keys("100000")
无法正常工作。但是,如果您使用的是JS执行器,请尝试更新placeholder
或value
属性。
price=browserdriver.find_element_by_xpath("//*[@id='inputProductPrice']")
browserdriver.execute_script('arguments[0].placeholder = "100000";', price)
或
price=browserdriver.find_element_by_xpath("//*[@id='inputProductPrice']")
browserdriver.execute_script('arguments[0].value = "100000";', price)