问题:我正在使用Appium的python客户端send_keys
到WebElement
。
仪器决定有时不应该点击某些键。 当我尝试登录这样的事情时,这是一种痛苦。 我需要能够在输入字段上可靠地键入或以编程方式设置值。
这是(或多或少)我正在做的事情,and here's the gist of Instruments complaining about it:
el = driver.find_element_by_xpath('//UIATextField[1]')
el.click()
el.send_keys('ABCDEFGHI')
一切都很标准。 通常有效
但通常不会削减它。我需要一些坚实的东西。
可能的解决方案?
如果我做了某种尝试/重试,如果我得到send_keys
,我认为我可以让WebDriverException
工作。
但真正酷的是,如果我可以通过JavaScript execute_script
设置元素的值 - 或者更好的是 - 一个selenium python绑定!
我不知道JavaScript,我已经尝试过搜索如何在不执行sendKeys
的情况下设置对象的值,但我已经空白了。
任何想法都会非常有用。谢谢!
答案 0 :(得分:1)
以下解决方案:
# Get the element
el = driver.find_element_by_class_name('UIATextField')
driver.execute_script("au.getElement('%s').setValue('%s')" % (el.id, 'ABCDEF'))
# At this point, the keyboard is opened and the text is instantly entered.