selenium - 需要在硒中找到元素
问题描述
我想找到这些输入的元素:“Email”和“Mot de passe”来填充它。任何帮助将不胜感激这是网址:https ://www.geev.com/fr/login/local
我尝试了这些,但不适用于我:
List<WebElement> someElements = driver.findElements(By.xpath("//input[contains(@class, 'view-login-form-password-input ng-untouched ng-pristine ng-invalid')]"));
List<WebElement> someElements = driver.findElements(By.cssSelector(".view-login-form-password-input.ng-untouched.ng-pristine.ng-invalid"));
List<WebElement> someElements = driver.findElements(By.className("input.view-login-form-password-input ng-untouched ng-pristine ng-invalid"));
for (WebElement anElement : someElements) {
if (anElement.getAttribute("type").equals("email")) {
// Do something
anElement.sendKeys(""); }
}
编辑1:
感谢@wp78de 的建议,仅此一项有效,但不幸的是,它指的是搜索输入,而不是“电子邮件”和“Mot de passe”输入
WebElement anElement = driver.findElement(By.xpath("//*/form[1]/input[1]"));
后来我为我的第二种形式尝试了这个,但没有用:(
WebElement anElement = driver.findElement(By.xpath("//*/form[2]/input[1]"));
解决方案
要发送到电子邮件并通过,请使用以下内容。
WebElement userName = driver.findElement(By.cssSelector("input[type='email']"));
userName.sendKeys("Username");
WebElement passWord = driver.findElement(By.cssSelector("input[type='password']"));
passWord.sendKeys("Pass");
我在这之后使用它。
driver.get("https://www.geev.com/fr/login/local");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
推荐阅读
- c# - 更新信封属性以表示它已被下载
- r - 如何根据 R 中另一列的部分信息添加列
- r - 数据框使总行数增加一倍
- string - 通过 WebAPI 通过 JSON 导出 CSV 字符串的最佳方式?
- python - 损坏的进程池错误 - 并发期货
- mysql - 将 XML 文件导入数据库但转义一些 XML 标记
- python - 使用 os.walk() 遍历数据时面临错误
- javascript - 有什么方法可以更改 Chartjs 3.0.0 中标签的字体颜色和大小
- c# - 实体A包含实体B,我如何在不插入B的情况下更新A(因为它已经存在)EF核心
- python - Python Selenium 如何输入登录 ID