我正在尝试找出如何检查烤面包机的消息。 我不是开发人员,并且对自动化测试非常陌生。 我使用的是python,所以有可能有详细的python代码,可用来检查android设备上的烤面包机消息。
谢谢。
答案 0 :(得分:0)
通常,黑白吐司消息与应用中的其他任何UI元素都没有区别,以进行搜索和操作:
self.driver.find_element_by_id("your_app_package/your_app_toast_id")
但是,我几次遇到一个问题,即吐司出现和消失的速度太快,以至于Appium无法捕获:它在Android Accessibility层中是不可见的,因此您无法获取页面源并在那里进行检查。
幸运的是,使用新的Espresso驱动程序,您可以调用测试应用程序的内部组件(包括吐司)并进行检查。这是更可靠的方法,但是需要花费时间set up。
答案 1 :(得分:0)
相关的GroupBy.transform
类似于:
toast_text = wait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//android.widget.Toast"))).get_attribute("text")
print(toast_text)
#do whatever you need with the "toast_text" string
由于XPath Expression的性质,它并不总是可用/可见,因此您必须Toast
建议的代码:
class PublicationAuthorsSchema(Schema):
name = fields.String()
role = fields.String(validate=OneOf(choices=['author', 'inventor']))
class PublicationSchema(Schema):
authors = fields.List(fields.Nested(PublicationAuthorSchema))
title = fields.String()
class BookSchema(PublicationSchema):
# Something here i would like to limit authors role to 'author' value
publisher = fields.String()
class PatentSchema(PublicationSchema):
# Something here i would like to limit authors role to 'inventor' value
country_restrictions = fields.List(fields.String)
...
def publication_loader(json_data):
schema_class = PublicationSchema
if json_data.get('$schema') == 'http://example.org/patent_v1.0.0.json':
schema_class = PatentSchema
elif json_data.get('$schema') == 'http://example.org/book_v1.0.0.json':
schema_class = BookSchema
schema = schema_class()
# I tried to alter schema here ...
result = schema.load(json_data)
if result.errors:
raise MarshmallowError(result.errors)
return result.data
...
data = {
'$schema': 'http://example.org/book_v1.0.0.json',
'title': 'Programming with python',
'authors': [
{
'name': 'John Doe',
'role': 'author'
},{
'name': 'Harvey Smith',
'role': 'inventor'
}
]
}
result = publication_loader(data)
# I would like than a ValidationError will be raised because, authors of 'book' could only have 'author' role
# The Author 'Harvey Smith' should be in error because he is tagged as 'inventor' (stupid example, i admit it)
答案 2 :(得分:0)
你好,试试下面的 Toast 消息代码。 如果你有不止一个吐司,那么请。更改索引号。
toastMsg = wait.until(lambda x:x.find_element_by_xpath("//android.widget.Toast[1]"))
print(toastMsg.get_attribute("name"))