Test app máy tính bằng Java

Mình không hiểu đoạn :" mainscreen." bị lỗi gì mà không chạy đc?

package com.experitest.auto;
import java.net.URL;
import java.text.DecimalFormat;
import java.util.Random;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Optional;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import io.appium.java_client.remote.AndroidMobileCapabilityType;
import io.appium.java_client.remote.MobileCapabilityType;
public class AndroidDemoTest extends BaseTest {
	protected AndroidDriver<AndroidElement> driver = null;
	@BeforeMethod
	@Parameters("deviceQuery")
	public void setUp(@Optional("@os='android'") String deviceQuery) throws Exception{
		init(deviceQuery);
		// Init application / device capabilities
		//dc.setCapability(MobileCapabilityType.APP, "cloud:com.experitest.ExperiBank/.LoginActivity");
		//dc.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "com.experitest.ExperiBank");
		//dc.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, ".LoginActivity");
		dc.setCapability(MobileCapabilityType.APP, "cloud:com.google.android.calculator/com.android.calculator2.Calculator");
		dc.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "com.google.android.calculator");
		dc.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, "com.android.calculator2.Calculator");
		dc.setCapability("appVersion", "7.5 (213680574)");
		//dc.setCapability("dontGoHomeOnQuit", true);
		dc.setCapability("testName", "AndroidDemoTest");
		driver = new AndroidDriver<>(new URL(getProperty("url",cloudProperties) + "/wd/hub"), dc);
	}
	@Test
	public float floatclick()
	{
	int n;
	float a = 0, k = 100;
	Random rnd = new Random();
	//Nhap phan nguyen
	for (int i=0; i<3; i++)
	{
	n	= rnd.nextInt(10);
	String str = "mainscreen." + Integer.toString(n); driver.findElement(in.Repo.obj(str)).click();
	a	= a + (n * k); k = k/10;
	}
	driver.findElement(in.Repo.obj("mainscreen.point")).click();
	//Nhap phan thap phan
	k	= (float)1/10;
	for (int i=0; i<3; i++)
	{
	n	= rnd.nextInt(10);
	String str = "mainscreen." + Integer.toString(n); driver.findElement(in.Repo.obj(str)).click();
	a = a + (n * k);
	k = k/10;
	}
	//Random so am duong (0 la am, 1 la duong)
	n	= rnd.nextInt(2);
	//Kiem tra so am duong
	if (n == 0)
	{
	driver.findElement(in.Repo.obj("mainscreen.negative")).click(); return -a;
	}
	else return a;
	}
	public float intclick()
	{
	int n;
	int a = 0, k = 100;
	Random rnd = new Random();
	//Nhap so nguyen
	for (int i=0; i<3; i++)
	{
	n	= rnd.nextInt(10);
	String str = "mainscreen." + Integer.toString(n); driver.findElement(in.Repo.obj(str)).click();
	a	= a + (n * k); k = k/10;
	}
	//Random so am duong
	n	= rnd.nextInt(2);
	//Kiem tra so am duong
	if (n == 0)
	{
	driver.findElement(in.Repo.obj("mainscreen.negative")).click(); return -a;
	}
	else return a;
	}
	public void test() {
//		Enter the test code //Khai bao 2 so hang 
		Float a, b;
	Random rnd = new Random();
	Integer m, n;
	Float rs, kq;
	DecimalFormat df1 = new DecimalFormat();
	//Khai bao cac phep toan
	String math[] = {"plus","minus","multiply","divide"};
	//Sinh 20 bo du lieu kiem thu ngau nhien
	for (int i=0; i<20; i++)
	{
	driver.findElement(in.Repo.obj("mainscreen.DEG")).click(); //Random so thu nhat (0 la so nguyen, 1 la so thap phan)
	n	= rnd.nextInt(2);
	if (n==0) a = intclick();
	else a = floatclick();
	//Random phep toan
	rnd = new Random();
	m	= rnd.nextInt(4);
	String mth = "mainscreen." + math[m];
	driver.findElement(in.Repo.obj(mth)).click();
	//Random so thu hai (0 la so nguyen, 1 la so thap phan)
	rnd = new Random();
	n	= rnd.nextInt(2);
	if (n==0) b = intclick();
	else b = floatclick();
	//Ket qua
	driver.findElement(in.Repo.obj("mainscreen.equal")).click();
	//Lay ket qua hien thi tren man hinh
	String result =
	driver.findElement(in.Repo.obj("mainscreen.result")).getText(); String k = "";
	char res[] = result.toCharArray();
	int l = result.length();
	for (int j=0; j<l; j++)
	if (res[j] != ',') k = k + res[j];
	//kiem tra phep chia cho 0
	if ((m!=3) && (b!=0))
	{
	kq = Float.parseFloat(k);
	//Tinh toan ket qua thuc de so sanh
	if (m==0) rs = a + b;
	else if (m==1) rs = a - b;
	else if (m==2) rs = a * b;
	else rs = a / b;
	//So sanh ket qua test, Pass hay Fail
	if (df1.format(rs).equals(df1.format(kq)))
	System.out.print("PASS ");
	else System.out.print("FAIL ");
	}
	else
	{
	//So sanh ket qua test, Pass hay Fail
	if (k.equals("ERROR"))
	System.out.print("PASS ");
	else System.out.print("FAIL ");
	}
	//in ra phep tinh va ket qua
	System.out.print(df1.format(a));
	if (m==0) System.out.print(" + ");
	else if (m==1) System.out.print(" - ");
	else if (m==2) System.out.print(" * ");
	else System.out.print(" / ");
	System.out.print(df1.format(b));
	System.out.print(" = ");
	System.out.print(result);
	}
	}
	@AfterMethod
	public void tearDown(){
		driver.quit();
	}
}

Mình tham khảo qua bản báo cáo này :

https://docs.google.com/document/d/17MtsSbNRe_h6j6uOZgvIHFD6zUf0wC92aj07qTBq6GU/edit?usp=sharing

:scream:

  1. "mainscreen." nào?
  2. Lỗi gì?
    • Lỗi cú pháp, không biên dịch được.
    • Lỗi khi thực thi. Ngoại lệ được ném ra, sẽ có thông báo, nhật ký ghi lại.
    • Lỗi không biết. Bạn còn không biết thông tin của nó, đưa đoạn mã đó lên cho bọn mình “mò” lỗi giùm bạn?
1 Like

Sau bao lâu mà bạn vẫn không sửa đổi được cái kiểu đánh đố người khác. Đặt vị trí người khác thì có thể hiểu được bạn đang nói gì không? Thái độ kém như vậy bạn nên chuyển nghề sớm thì tốt hơn, khuyên thật

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?