我正在尝试使用selenium webdriver和firebug在firefox浏览器中自动化gmail。
Selenium无法识别密码fileld的xpath。
密码字段的xpath是什么。
答案 0 :(得分:1)
当您尝试登录 Gmail Account
时,在填写带有文字的 EmailID/Phone
字段并同时点击 Next
按钮, Password
的文本字段需要一段时间才能显示在Viewport
内。因此,除了仅为 xpath
字段找到 Password
之外,您必须诱导一些 ExplicitWait
,即 WebDriverWait
如下:
WebDriverWait wait = new WebDriverWait(driver, 20);
WebElement password = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@name='password']")));
password.sendKeys("your_password");
答案 1 :(得分:1)
尝试下面提到的xpath:
//*[@name="password"]
我建议您在Chrome浏览器控制台上验证xpath。 如果您的应用程序支持具有以下语法的Chrome
$x("//*[@name='password']")
答案 2 :(得分:0)
尝试以下xpath:
By.xpath(.//*[@id='password']/div[1]/div/div[1]/input)
答案 3 :(得分:0)
使用此xpath:
//INPUT[@type='password']
试试这个。 firebug已过时我建议您使用其他软件来处理更复杂的xpath。
答案 4 :(得分:0)
使用此:
//input[@type='password']
否则你可以找到像
driver.findElement(By.name("password"));
答案 5 :(得分:0)
使用以下任何XPath
//input[@type='password']
OR
//input[@name='password']
OR
//input[contains(@aria-label,'Enter your password')]
OR
//input[contains(@autocomplete,'current-password')]
完整的代码如下: -
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
driver.findElement(By.name("identifier")).sendKeys("xxx@gmail.com");
driver.findElement(By.xpath("//span[contains(.,'Next')]")).click();
driver.findElement(By.name("password")).sendKeys("123456");
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//span[contains(.,'Next')]")));
element.click();
答案 6 :(得分:0)
使用此xpaths
//input[@class='whsOnd zHQkBf'][@name='password']
//input[@type='password']
//*[@type='password']
//input[contains(@aria-label,'Enter your password')][@name='password']
//input[contains(@aria-label,'Enter your password')][@autocomplete='current-password']
您应该使用xpath
,而不是使用name
,因为它优先于xpath
,如下所示:
System.setProperty("webdriver.chrome.driver", "E:\\software and tools\\chromedriver_win32\\chromedriver.exe");
WebDriver chrome_driver = new ChromeDriver();
chrome_driver.findElement(By.name("password")).sendKeys("xxxxxxxxxx");
或者您可以使用任何xpath
chrome_driver.findElement(By.xpath("xpath you want")).sendKeys("xxxxxxxxxx");