当前位置: 首页 > 知识库问答 >
问题:

我如何使用appium从混合应用程序的下拉列表中选择值?

莘聪
2023-03-14

我对appium比较陌生,并且积极参与poc。要求是从下拉列表中选择一个值,但是我可以单击微调器元素,但下面的任何内容都无法识别我的uiautomator。因此,我无法从微调器元素中选择任何值。我正在附加脚本的代码块以及元素树快照。

 //trying to click the dropdown list
		 try{
			 WebElement parentElement1 = driver.findElement(By.id("retProdOp0"));
			 WebElement childElement1 = parentElement1.findElement(By
					.xpath("//android.view.View[@index='1']"));
			childElement1.click();
			driver.label("dropdown list 2nd element clicked");
		 }catch(Exception e){
			driver.label("Failed to click dropdown list on prodexchg screen");
			System.out.println(e.getMessage());
		 }
		 

快照1

快照2

我想从Snapshot2的微调器下拉列表中选择值。但是我无法在uiautomator中找到它们。寻求帮助。提前谢谢。

共有3个答案

柯英奕
2023-03-14

尝试了appium桌面,但面临同样的问题。Appium桌面截图1 Appium台式截图2

请参考第二张截图。谢谢

国斌斌
2023-03-14
匿名用户

您使用了不正确的XPath定位器来选择下拉列表中的项目。

在你的屏幕截图上,很明显,在你点击下拉列表之前,其中的项目还没有在DOM中。所以在父级中搜索是不正确的,因为它当时不包含元素。

  1. 使用应用程序桌面而不是UI自动计数器进行元素检查,它的效果更好
  2. 单击下拉列表以将其展开
  3. 要单击其中一个项目,请执行以下操作:

<code>列表

< code > driver . find element(by . XPath("(//Android . view . view)[1])

卞嘉许
2023-03-14

以下解决方案将为您提供帮助。如果没有,请告诉我。

  1. 从您的对象属性来看,您现在似乎处于Native上下文中。因此,在选择下拉项之前,请更改为Web Context。

driver.Context="WebContext";或者

驱动程序。上下文=“铬”

webcontext的名称可以是不同的2。现在选择元素,就像在web中使用selenium webdriver一样

Select dropdown=new Select(driver.findElement(By.id(“mySelect”));下拉菜单。选择ByVisibleText(“文本”)

注意:要找到webcontext的属性,您可以获取源代码或在浏览器中访问web URL。

 类似资料:
  • 下面给出了一段表示下拉列表的代码。我需要在此下拉列表中选择日期值,由<代码> 以下方法无效 1。)使用“按导入组织选择”选择此值。openqa。硒。支持用户界面。选择 控制台显示: 元素应该是“选择”,但应该是“选项” 2.)首先单击下拉列表以显示要选择的选项,然后单击该选项。 控制台显示: 调试元素缺少可访问的名称:id:类型,标记名:选择,类名:文本输入ng原始ng未触及ng有效ng范围 3.

  • 执行测试脚本后,我看到控制台“驱动程序null”错误 剧本: 如果我错过了什么,有人能帮忙吗。谢谢,

  • 问题内容: 下面给出的是一段代码,表示下拉列表。我需要在此下拉列表中选择 日期 值,表示为 遵循方法无效。 1.)使用“ 选择” 通过导入 org.openqa.selenium.support.ui.Select* 选择此值 * 控制台显示: 元素应该是“选择”但是“选项” 2.)首先单击下拉菜单以显示要选择的选项,然后单击该选项。 控制台显示: DEBUG元素缺少可访问的名称:id:类型,ta

  • 我想使用硒从选择字段中选择一个选项 HTML格式如下: 我尝试了以下方法: 我收到了这个错误: 硒。常见的例外情况。NoSuchElementException:消息:没有这样的元素:无法定位元素:{“方法”:“xpath”,“选择器”:”//*[@id=“Enable”]/option[value=“0”]}

  • 仍然是新的量角器,茉莉等。 今天,我正在尝试在我的一个测试中与下拉选项列表进行交互。 这是: var 选择下降 = 元素(按.css(“.下拉列表”);所有选项 = 元素(按选项(“某些选项”)); 现在点击下拉列表 selectDropDown.click(); 单击索引为 2 的下拉列表中的“选项” allOptions.get(2). Click(); 一些用于断言的代码。。。。 现在的问题

  • 这是关于Python剧作家基本功能的这个问题的后续。 如何从下拉列表中选择选项? 这个示例远程控制一个vuejs网络游戏,它有一个水果下拉列表,如“苹果”、“香蕉”、“胡萝卜”、“橘子” 这里我想选择“香蕉”选项 像这样的下拉列表 HTML 在Selenium中,我会选择如下选项 剧作家的Javascript文档有这个,这并不完全相同,因为它似乎同时识别对象。 如何在Playwright for