Невозможно найти или нацелить элементы в iframe с помощью Selenium - PullRequest
0 голосов
/ 01 сентября 2018

Я пытаюсь написать скрипт C # Selenium, чтобы изменить размер элемента на: http://automationpractice.com/index.php

Я не могу нацелить что-либо во всплывающем окне iframe даже после попытки сначала переключиться на фрейм.

Чтобы отобразить iframe, я нажал на быстрый просмотр элемента 1, используя:

var element = 
driver.FindElement(By.XPath("//*[@id=\"homefeatured\"]/li[1]/div/div[1]/div/a[1]/img"));
Actions actions = new Actions(driver);
actions.MoveToElement(element);
actions.Click();
actions.Perform();

Затем показывалось окно iframe, но я ничего не могу найти в нем даже после попытки переключиться в окно с помощью:

кадр 3 - это то, что выбрал firefox ide.

driver.SwitchTo().Frame(3);

выбор значения по умолчанию и выбор других кадров.

driver.SwitchTo().DefaultContent(); 

пытается использовать имя фрейма

driver.SwitchTo().Frame("fancybox-margin fancybox-lock");

попытка идентификатора кадра 0,1,2,3

Он никогда не находит элементы по XPath, ID, имени или чему-либо еще. Я пытаюсь изменить размер выпадающего списка.

XPath, который я ищу, хотя я пробовал много других более высоких уровней,

//*[@id="group_1"]

Любая помощь действительно ценится, я застрял так долго.

Ответы [ 2 ]

0 голосов
/ 02 сентября 2018

В конце концов удалось решить проблему, был еще один iframe внизу, поэтому он не работал, поскольку нацеливался на элементы в iframe 1 или 2 после перехода в iframe 3. Также необходимо было добавить задержку перед поиском элемента во время поиска до завершения загрузки iframe.

0 голосов
/ 01 сентября 2018

Используйте это, чтобы переключиться, это будет работать, Id состоит из некоторого числа в конце, а также оно постоянно меняется.

driver.SwitchTo().Frame(By.Xpath("//iframe[starts-with(@id,'fancybox-frame')]"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...