2017-07-17 99 views
2

我想从用户输入的按键(发送键)我应该如何实现呢?获取用户输入的硒webderiver

driver.findElement(By.xpath(".//*[@id='vehicleNum']")).sendKeys("1121"); 
+0

你想获得您发送邮件使用的SendKeys(值 “1121”)? –

回答

2

作为演示,我为您提供的代码样本块与对于URL https://accounts.google.com这将要求来自用户的输入提供Email or Phone,然后点击按钮Next

使用Scanner您将在IDE控制台上获得用户提示,如Enter your Email or Phone :。千万记得要通过scanner_user.close();明确关闭扫描仪,以防止Resource Leakage

import java.util.Scanner; 
import java.util.concurrent.TimeUnit; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.openqa.selenium.chrome.ChromeOptions; 
import org.openqa.selenium.support.ui.ExpectedConditions; 
import org.openqa.selenium.support.ui.WebDriverWait; 

public class GMAIL_LOGIN_SCANNER 
{ 

    public static void main(String[] args) 
    { 


     Scanner scanner_user, scanner_pass; 
     System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe"); 
     ChromeOptions options = new ChromeOptions(); 
     options.addArguments("start-maximized"); 
     options.addArguments("disable-infobars"); 
     options.addArguments("--disable-extensions"); 
     WebDriver driver = new ChromeDriver(options); 
     driver.get("https://accounts.google.com"); 
     driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS); 
     scanner_user = new Scanner(System.in); 
     System.out.println("Enter your Email or Phone : "); 
     String user = scanner_user.nextLine(); 
     driver.findElement(By.xpath("//input[@id='identifierId']")).sendKeys(user); 
     driver.findElement(By.id("identifierNext")).click(); 
     scanner_user.close(); 
    } 

} 
+1

thz其工作 – GHOST

2

您可以使用内置Scanner类从系统控制台获取输入。下面的代码可能会给你一些想法。

Scanner sc = new Scanner(System.in); 
String name = sc.nextLine(); 
//now pass name in sendkeys. 
driver.findElement(By.xpath(".//*[@id='vehicleNum']")).sendKeys(name); 

不然,如果你需要从webelement的一个获取文本,确定webelement和使用gettext()来获取字符串值。

String value = driver.findElement(by.xpath("//")).getText(); 
driver.findElement(By.xpath(".//*[@id='vehicleNum']")).sendKeys(value); 

希望这会有所帮助。谢谢..

+0

我想从网站 – GHOST

+0

thz其工作:D – GHOST

1

即使你的问题并不清楚正确,但因为我假设你需要下面的解决方案。 为了从文本框中输入值,可以使用下面的代码:

driver.findElement(By.xpath(".//*[@id='vehicleNum']")).sendKeys("1121"); 
String str = driver.findElement(By.xpath(".//*[@id='vehicleNum']")).getAttribute("value"); 
System.out.println(str); 

程序输出将是“1121”