我只是在使用Selenium和Java自动化gmail网站,我被困在gmail主页的语言选择下拉列表中。选择下拉列表后,我无法从列表框中选择任何特定语言,因为我得到的元素不可见异常。我们如何从这些列表框中选择元素?我已经尝试过使用许多通用技术,如动作,显式等待等。
答案 0 :(得分:0)
登录后,以下代码将选择语言Dansk。这里重要的是使用Selenium Select类。有关文档,请参阅:https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/support/ui/Select.html
WebDriverWait wait = new WebDriverWait(driver, 15);
WebElement next = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//content/span[contains(text(),'Next')]")));
next.click();
WebElement settings = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[contains(@class,'aos T-I-J3 J-J5-Ji')]")));
settings.click();
WebElement settingsmenuchoice = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[contains(@class,'J-N aMS')]")));
settingsmenuchoice.click();
WebElement select = wait.until(ExpectedConditions.elementToBeClickable(By.id(":m4")));
select.click();
Select languageDropdown = new Select(select);
List<WebElement> Options = languageDropdown.getOptions();
for(WebElement option:Options){
if(option.getText().equals("Dansk")) {
option.click();
}
}
答案 1 :(得分:0)
我尝试过和您一样,通过更改语言获得成功,但是我无法选择想要的语言。这是我使用的方法:
driver.findElement(By.xpath("//div[@class='u7land']")).click();
driver.findElement(By.xpath("//div[@class='ry3kXd Ulgu9']")).click();
driver.findElement(By.xpath("//div[@class='OA0qNb ncFHed']")).click();