老师,我有3个问题,麻烦老师有空解答一下
1.xxx.send_keys("PDD"),但是实际运行变成了“PdD”.将unicodeKeyboard设置为True就好了,为什么英文也需要设置unicode呢?
2.我用price.get_attribute("resource-id")会报错“This element does not have the 'resource-id' attribute”,但是用price.get_attribute("resourceId")就正常
3.get_attribute("package")同样报错NoSuchElementException,与2一样。查找资料说是获取不到,为什么老师的是可以呢?
环境:windows10-android9-appium v1.9.1
代码如下
```
def test_demo(self):
self.driver.find_element_by_id("com.xueqiu.android:id/tv_search").click()
sleep(1)
self.driver.find_element_by_id("com.xueqiu.android:id/search_input_text").send_keys("PDD")
self.driver.find_element_by_id("name").click()
price = self.driver.find_element_by_id("current_price")
assert float(price.text) > 0
assert "price" in price.get_attribute("resourceId")
# 使用hamcrest 断言
assert_that(price.get_attribute("package"), equal_to("com.xueqiu.android"))
```
展开
作者回复: 第一个问题是你的输入法拦截了输入,所以换成无界面的输入法就没问题了。
第二个问题要怎么写是底层决定的。对属性的名字有约束的,我后面剖析代码的时候讲过的。
第三个报错是没找到元素,说明是之前的控件定位有问题,你得查下定位问题,看下错误的代码行。可能跟前两个问题无关。