我无法将Keys 文本发送到 eBay 上的用户名和密码字段中。
这是代码:
WebDriver driver = null;
System.setProperty("webdriver.chrome.driver", "/usr/local/bin/chromedriver");
driver = new ChromeDriver();
driver.get("http://www.ebay.co.uk");
WebElement myEbay = driver.findElement(By.linkText("My eBay"));
myEbay.click();
WebElement signInForm = driver.findElement(By.id("SignInForm"));
if (signInForm.isDisplayed())
System.out.println("Sign in form is displayed");
WebElement username;
username = driver.findElement(By.cssSelector("input[placeholder=\"Email or username\"]"));
它设法找到 My Ebay 链接,并验证登录表单是否存在,但用户名和密码字段 ID 在每次刷新页面后都会更改。
用户名 cssSelector 似乎是问题所在?
编辑:我已经成功地使用了 XPath,但这次练习是为了让 cssSelector 工作,因为理论上没有理由不这样做!
最佳答案
我已经用 xpath 替换了 cssSelector 定位器,并且它在绝对 xpath 下工作正常。下面是修改后的代码:
WebDriver driver = null;
System.setProperty("webdriver.chrome.driver", "C:\\Users\\vikas\\workspaceNeon\\Eclipse Soft\\chromedriver.exe");
driver = new ChromeDriver();
driver.get("http://www.ebay.co.uk");
WebElement myEbay = driver.findElement(By.linkText("My eBay"));
myEbay.click();
WebElement signInForm = driver.findElement(By.id("SignInForm"));
if (signInForm.isDisplayed())
System.out.println("Sign in form is displayed");
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
WebElement username = driver.findElement(By.xpath("html/body/div[4]/div/div/div/div[5]/div/div[1]/div/div[1]/div[1]/div[2]/div/span/form/div[1]/div[5]/div/div[4]/span[2]/input"));
username.sendKeys("Vikas");
关于java - 无法使用带有 Java 和 chrome 的 WebDriver Selenium 3 将 key 发送到 eBay 用户名字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44865933/