【问题标题】:Selenium - Issue while trying to select from a dropdownSelenium - 尝试从下拉列表中选择时出现问题
【发布时间】:2017-08-09 19:30:37
【问题描述】:

我需要一点帮助。我正在尝试在 http://zara.com 网站上运行自动化测试,我想从语言下拉列表中选择语言。

这是来自 Zara 的 HTML 代码。 https://prntscr.com/g6hdiv

这是我在 IntelliJ 中使用 Selenium 2.53 尝试过的代码

public class RegistrationTest {

 WebDriver driver;

    @Before
    public void setUp(){
        driver = new FirefoxDriver();
        driver.get("http://zara.com");
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

    }
    @After
    public void tearDown(){
        driver.quit();
    }

    @Test
    public void test(){

        WebElement languageDropdown = driver.findElement(By.id("language"));
        Select selectLanguage = new Select(languageDropdown);
        selectLanguage.selectByValue("en");
    }

}

即使我尝试了不同的设置但它不起作用,我总是收到以下错误。

org.openqa.selenium.ElementNotVisibleException:该元素当前不可见,因此可能无法与之交互

你能告诉我我做错了什么吗?

感谢您的帮助。

【问题讨论】:

  • 该错误表示该页面没有下拉菜单。您能否验证执行测试时是否显示下拉菜单?
  • 该元素似乎没有显示在页面上,按照开发者的意愿,您应该使用其他方式选择语言。
  • 我运行测试时没有出现下拉菜单。如果我尝试在其他页面上选择不同的下拉菜单,它可以工作,但使用这个它不会。你知道我应该如何尝试吗?
  • 您的代码没有显示您设置 Geckodriver。你是不是用别的方法做的?我刚刚运行了你的确切代码,只使用 Chrome,它工作得很好。
  • 我刚刚注意到你说:“Selenium 2.53”。那正确吗?那已经严重过时了!

标签: java selenium-webdriver automated-tests selenium-firefoxdriver


【解决方案1】:

该元素当前不可见,因此可能无法与之交互

您需要滚动页面,使元素位于当前视口中。像这样的:

WebElement languageDropdown = driver.findElement(By.id("language"));
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", languageDropdown);
Select selectLanguage = new Select(languageDropdown);
selectLanguage.selectByValue("en");

【讨论】:

  • 以上方法都试过了,还是不行。相同的错误信息。我不确定为什么它没有看到元素。
猜你喜欢
  • 2021-11-04
  • 2022-07-28
  • 2020-03-30
  • 2022-10-13
  • 2018-06-14
  • 1970-01-01
  • 2019-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多