我正在嘗試編寫一個Selenium Java程序,它將從外部源獲取命令。例如我以一種用戶友好的方式在外部編寫driver.findElement(By.id("username")).sendKeys("FirstName");
,因此用戶可以在不知道後端代碼的情況下創建硒腳本。操縱代碼 - 編輯和運行代碼
分裂它分爲4個部分:
1) identifier type e.g. id
2) identifier e.g. "username"
3) command type e.g. sendKeys
4) input data e.g. "Firstname"
在我的代碼我使用的是運行時編譯器編譯字符串爲代碼(我這樣做是因爲它運行我可以操控整個代碼串)這樣我可以有一小段代碼來運行外部源中引用的任何東西,所以只要正確創建了外部源,此代碼就可以用於sendKeys,單擊等等,無需任何更改。
我能夠運行
`" String URL2 = \"id\";" + "\n" +
" String URL3 = \"username\";" + "\n" +
" String URL4 = \"sendKeys\";" + "\n" +
" String URL5 = \"Grabhamn\";" + "\n" +
" System.out.println(\"driver.findElement(By.\"+URL2+\"
(\"+URL3+\")).\"+URL4+\"(\"+URL5+\");\");" + "\n" +`
此輸出driver.findElement(By.id(username)).sendKeys(Grabhamn);
但我的問題是,那我怎麼在運行時編譯器執行該代碼。此外,我需要代碼輸出爲
driver.findElement(By.id("username")).sendKeys("Grabhamn");
在這些地方包含引號,因爲我也不成功做到這一點。
任何有關如何做到這一點或替代解決方案的信息將不勝感激。
Java腳本API可能適合。 –