仪器无法间歇性地执行send_keys。应如何处理?

时间:2014-07-10 23:41:05

标签: selenium instruments appium

问题:我正在使用Appium的python客户端send_keysWebElement

仪器决定有时不应该点击某些键。 当我尝试登录这样的事情时,这是一种痛苦。 我需要能够在输入字段上可靠地键入或以编程方式设置值

这是(或多或少)我正在做的事情,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的情况下设置对象的值,但我已经空白了。

任何想法都会非常有用。谢谢!

1 个答案:

答案 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.