2016-08-21 94 views
1

我无法在Appium中使用xpath包含和遵循策略。我不知道它在Appium中是否支持。 Api级别19。 任何人都可以请帮助: 我必须点击文本视图显示余额即。 INR ..... 所以我用Appium xpath包含后续不工作

driver.findElement(By.xpath("//android.widget.TextView[contains(@name,'INR')]")); 
    and  
    driver.findElement(By.xpath("//android.widget.TextView[contains(text(),'INR')]")); 

但没有任何工程

enter image description here

+0

你的脚本中是否有某种异常或错误信息?你共享的步骤只是试图找到元素,但不要试图用它做任何事情。 – Domestus

+0

@Domestus,是它无法找到元素.. –

+0

你可以使用driver.findElement(By.accessibilityId(“INR 1,567.89”)) – SaiPawan

回答

0

我看到,android.widget.TextView是类属性。

应该不是你的XPath是这样的:

//*[contains(@class, 'widget')][contains(text(),'INR')] 

总是在检查尝试手动选择。

+0

嗨劳达,抱歉,但它不工作.. –

2

@Sahil Sehgal:因为您的元素没有名称属性,所以您可以使用text属性来查找元素。在下面的例子中,我添加了“可用余额”和“INR”的检查。使用适合您需求的产品 -

driver.findElement(By.xpath("//android.widget.TextView[contains(@text, 'Available Balance')]")).click(); 
driver.findElement(By.xpath("//android.widget.TextView[contains(@text, 'INR')]")).click(); 
+0

这是主要问题。我已经尝试了上面的代码,但它无法找到元素。 –

+0

你能发布错误日志吗?你尝试过哪一个?在上面的解决方案中,我使用的@text不是文本() – Suman

+0

,我想'@text'在xpath中是无效的语法 –

1

以全文检索。希望这会起作用。

driver.findElement(By.xpath("//android.widget.TextView[@text='INR 1,567.89']")).click(); 
+0

在上述解决方案中,当客户余额变化时,xpath将仅适用于该余额(INR1567.89),测试将失败。 – Suman