【问题标题】:How to find locator of element similar as getText() in automation如何在自动化中找到类似于 getText() 的元素定位器
【发布时间】:2019-07-18 15:48:53
【问题描述】:

如何在自动化中找到类似于 getText() 的元素定位器

[我正在测试应用程序模块,其中有从 1 到 50 的日期标尺,每次我进入该模块时,日期都会在上述范围内变化。那么如何获取元素值(ID、Xpath、链接等)以便检测到其元素并将其值传递到下面的循环中。现在我在'j'中存储了硬核日值'38'。但我想为 'j' 使用动态值,这样它会减少到第 1 天]

[查找附图以供参考][1]

for (int j = 38;  j >= 1 ; j--) 
		{
			System.out.println(j);
		if (j >= 2) {
			Thread.sleep(2000);
			By day38 = By.xpath("//*[@text='"+j+"']");
			Thread.sleep(2000);
			objWrapperFunctions.mobileClick(day38);
		 } else {
			Thread.sleep(2000);
			By day1 = By.xpath("//*[@text='1']");
			Thread.sleep(2000);
			objWrapperFunctions.mobileClick(day1);
			break;
		 }
		}

【问题讨论】:

  • 用您想要获取定位器值的元素的HTML更新问题
  • @DebanjanB 请检查答案中添加的图像以供参考。它是一个应用程序
  • 您在答案中发布了图像,而不是编辑问题并将其添加到那里。请用图片更新问题。
  • 您想要当前选定的日期吗?例如42在你的照片?我的猜测是它应用了一个独特的类,因为它看起来与其他数字不同。您是否尝试过使用该类来构建定位器?

标签: java selenium mobile automation appium


【解决方案1】:

由于没有发布html但是,

// Case 1=> If we assume you get dynamic day based on below logic

    String dymamicDay=driver.findElement(By.id("someIDforDay")).getAttribute("value");

// get int for String read

    int dDay =Integer.parseInt(dymamicDay);

// Pass dynamic value for j in loop

    for (int j = dDay;  j >= 1 ; j--) 
            {
                System.out.println(j);
            if (j >= 2) {
                Thread.sleep(2000);
                By day38 = By.xpath("//*[@text='"+j+"']");
                Thread.sleep(2000);
                objWrapperFunctions.mobileClick(day38);
             } else {
                Thread.sleep(2000);
                By day1 = By.xpath("//*[@text='1']");
                Thread.sleep(2000);
                objWrapperFunctions.mobileClick(day1);
                break;
             }
            }

// Case 2=> If we assume you get dynamic day based on below logic

    List<WebElement> dynamicDay=driver.findElements(By.id("someIDforDay"));

// get no of days from List.size()

    int dDay =dynamicDay.size();

// Pass dynamic value for j in loop

    for (int j = dDay;  j >= 1 ; j--) 
            {
                System.out.println(j);
            if (j >= 2) {
                Thread.sleep(2000);
                By day38 = By.xpath("//*[@text='"+j+"']");
                Thread.sleep(2000);
                objWrapperFunctions.mobileClick(day38);
             } else {
                Thread.sleep(2000);
                By day1 = By.xpath("//*[@text='1']");
                Thread.sleep(2000);
                objWrapperFunctions.mobileClick(day1);
                break;
             }
            }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 2020-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多