1

Существует No Such Element Found даже после переключения на рамку.Selenium Webdriver Нет такого элемента Найдено

driver.switchTo().frame(frame); 
Select numberOfLinesMax = new Select(driver.findElement(By.name(name))); 
numberOfLinesMax.selectByVisibleText("sometext"); 

Иерархия элемента:

enter image description here

+0

Когда вы говорите, что вы переключаете кадры, вы переходите к iframe или к кадру? Если вы хотите найти элемент select, вам нужно переключиться на iframe. – Richard

+0

Как переключиться на iframe? –

+0

iframe width = "880" scrolling = "no" height = "90px" frameborder = "no" src = "multi_archive2.cgi? Msisdn =% 2B11112 & Nbmax = 20 & ArchiveLevel = Info & StartStop = Start" –

ответ

1

В этом случае вы либо придется использовать отсчет (начиная с 0), или findElement

I думаю, вы, вероятно, можете использовать

driver.switchTo().frame(1); 

Или, я думаю, это может быть лучшим решением

driver.switchTo().frame(findElement(By.css("form>iframe"))); 

особенно если форма имеет имя или идентификатор.

т.е.

Если вы собираетесь CSS выбор на основании имени формы X, то селектор CSS будет выглядеть следующим образом, где X это имя формы. Вы можете напрямую заменить имя формы, в которой находится X.

"form.X>iframe"

по форме ID будет выглядеть следующим образом:

"form#formID>iframe"

где FormID это идентификатор формы.

+0

Можете ли вы привести более конкретный пример, предположительно нет идентификатора и имени для iframe, тогда у нас есть «X» в качестве имени формы. Спасибо Richard –

+0

driver.switchTo(). Frame (driver.findElement (By.xpath ("// iframe [содержит (@ src, 'someSrc'))"))); Я использовал это, и он работает. спасибо Ричарду –

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