2013-12-04 3 views
1

Пожалуйста, любой может помочь мне, как выбрать параметры из раскрывающегося списка, если элемент не отображается. Вот 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> 

Am работает над селеном WebDriver. ниже код не работает нормально. Есть ли образец кода для выбора невидимого элемента.

Actions actions1 = new Actions(driver); 
WebElement dBox1= ((new WebDriverWait(driver,60)).until(ExpectedConditions.elementToBeClickable(By.id("visualizationId")))); 
selectByVisibleText("week"); 
actions1.moveToElement(dBox1); 
actions1.click(); 
actions1.perform(); 

При использовании ниже линии также я получаю сообщение об ошибке: Элемент не видимых в данный момент, и поэтому не может быть взаимодействовали с длительность команды или тайм-аут: 32 миллисекунду

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

или

se.selectByValue("week"); 

См. Html, и там элемент не отображается. Может ли кто-нибудь предложить мне, как сделать элемент видимым и выбрать вариант.

ответ

2

Здесь, для выбора опции, я пытаюсь щелкнуть элемент, используя 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); 
0

Вам не нужно ="", просто selected будет работать нормально

Кроме того, как вы предполагали выбрать из раскрывающегося списка, который не виден? Не будет ничего, чтобы нажать

+0

@Ajay, я попытался с помощью кода, но я получаю следующее сообщение об ошибке: Не удается найти элемент с текстом: недельное – Amirdha

0

Выбранный атрибут является логическим атрибутом. Синтаксис: <option selected>. Так Просто попробуйте это без ""

<option value="month" selected>Month</option> 
0

попробуйте этот код

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

se.selectByVisibleText("week") 
0

мой плохой его опечатка ошибка неуместны "ш" с "W" пожалуйста попробуйте это

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

se.selectByVisibleText("Week"); 

или

se.selectByValue("week"); 
+0

Пожалуйста, измените свой ответ и не оставлять 2 из них –

0

Вы можете взаимодействовать только с элементами, которые видны на веб-странице. Вы можете наверняка получить невидимый элемент (или его части), но вы ничего не можете с ним поделать. Если вы хотите взаимодействовать с этим элементом Select, вам сначала нужно убедиться, что он виден (атрибут отображения элемента Select), чтобы вы могли взаимодействовать с ним.

Смежные вопросы