Javascript “从下拉列表中选择选项”元素不可见

Javascript “从下拉列表中选择选项”元素不可见,javascript,jquery,html,selenium,selenium-webdriver,Javascript,Jquery,Html,Selenium,Selenium Webdriver,如果元素不可见,任何人都可以帮助我如何从下拉列表中选择选项。 以下是html标记: <select id="visualizationId" style="width: 120px; display: none;" name="visualization"> <option value="day">Day</option> <option value="week">Week</option> <option selected=""

如果元素不可见,任何人都可以帮助我如何从下拉列表中选择选项。 以下是html标记:

<select id="visualizationId" style="width: 120px; display: none;" name="visualization">
<option value="day">Day</option>
<option value="week">Week</option>
<option selected="" value="month">Month</option>
当使用下面的行时,我也会得到错误:元素当前不可见,因此可能无法与之交互 命令持续时间或超时:32毫秒

Select se=new Select(driver.findElement(By.id("visualizationId")));
se.selectByVisibleText("Week");
Select se=new Select(driver.findElement(By.id("visualizationId")));

se.selectByVisibleText("Week");

请查看html,那里的元素不可见。有谁能建议我如何使元素可见并选择该选项。

您不需要
=”
,只需选择
即可


另外,如何从不可见的下拉列表中选择?无需单击任何内容

所选属性是布尔属性。语法是
。因此,请不要使用

月份
试试这段代码

Select se=new Select(driver.findElement(By.id("visualizationId")));

se.selectByVisibleText("week")

我的坏毛病是它的打字错误把“w”和“w”错放了 请试试这个


您只能与网页上可见的元素进行交互。您当然可以获得不可见元素(或其一部分),但您不能对其执行任何操作。如果您想与这个Select元素交互,首先需要确保它是可见的(Select元素的display属性),这样您就可以与它交互。

在这里,为了选择选项,我尝试使用javascript单击元素(javascript,因为它允许您与隐藏元素交互)。下面是代码,请尝试一下。我不确定代码和语法(我不是java高手),但您仍然可以使用逻辑

WebElement elementToSelect = driver.findElement(By.xpath(".//select[@id='visualizationId']/option[text()='Day']")

JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", elementToSelect);

@Ajay,我尝试使用您的代码,但出现以下错误:无法使用文本定位元素:week
Select se=new Select(driver.findElement(By.id("visualizationId")));

se.selectByVisibleText("week")
Select se=new Select(driver.findElement(By.id("visualizationId")));

se.selectByVisibleText("Week");
se.selectByValue("week");
WebElement elementToSelect = driver.findElement(By.xpath(".//select[@id='visualizationId']/option[text()='Day']")

JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", elementToSelect);