String str ='here i am entring some string'
我试图在“base64”
的帮助下加密字符串byte[] encode = Base64.encodeBase64(str.getBytes());
driver.findElement(By.xpath(".//[@id='login_div']/form/div[2]/p[2]/input")).sendKeys(encode);
但是在sendkeys
他们不接受(编码)值,他们抛出了错误。
答案 0 :(得分:1)
它会抛出编译时错误,因为" Sendkeys"方法只能接收字符序列(char值的可读序列)。因此,如果您的要求是将该字节数组发送到该特定的文本框/文本字段,那么请尝试使用这段代码。
char序列的引用:https://docs.oracle.com/javase/7/docs/api/java/lang/CharSequence.html
driver.findElement(By.id(".//[@id='login_div']/form/div[2]/p[2]/input")).sendKeys(encode.toString());
这里我将该字节数组作为字符串发送。如果有任何问题,请告诉我。
答案 1 :(得分:-1)
您所做的一切都是正确的,但我们需要在将字符串发送到selenium sendkeys之前对其进行解密。我创建了一个单独的帮助程序类来执行加密和解密,如下所示。
public class Helper {
/**
* Static helper method to Encrypt a string
* @param word - Pass the word that needs to be encrypted
* @return - Returns the encrypted String for the word
*/
public static String encrypter(String word)
{
String encoded = Base64.getEncoder().encodeToString(word.getBytes());
return encoded;
}
/**
* Static helper method to decode the encrypted String
* @param word - Pass the encrypted String which needs to be encrypted
* @return - Returns the decrypted String
*/
public static String decrypter(String word)
{
byte[] decoded = Base64.getDecoder().decode(word.getBytes());
return new String(decoded);
}}
现在在我们的硒中,我们可以使用类似的东西。
String str = "Enter the String to Encrypt";
String encoded = Helper.encrypter(str);
driver.findElement(By.xpath(".//[@id='login_div']/form/div[2]/p[2]/input")).sendKeys(Helper.decrypter(encoded));
注意 - 我使用的是java 1.8.0_121。在以前的版本中,Base64类方法实现可能略有不同,但概念是相同的。