Поэтому, помогая другому пользователю устранить проблему с селенином / селектором, я считаю, что столкнулся с более крупной проблемой, для которой мне интересно, есть ли какое-либо решение.
По сути, я наткнулся на (i) рамочный ад. Извините, что включил снимок экрана консоли разработчика, но я не смог найти хороший способ скопировать его.
![too many frames](https://i.stack.imgur.com/uDfL0.png)
Итак, как вы можете видеть, если вы любезно щелкните по изображению выше, HTML-код этой страницы содержит кадры внутри наборов кадров внутри кадров внутри ....
Мне удалось идентифицировать первый уровень фреймов, но, конечно, элемент, который мы хотели найти, находился в середине всех этих фреймов.
Я обнаружил, что, используя xpath
, cssSelector
, ID
, Name
, любой тип локатора, я никогда не смог найти ни одного элемента мимо и включая все, что вложено в элемент #document
. Я читал на нескольких сайтах, что это либо очень сложно, либо невозможно, но я никогда не сталкивался с решением, которое подойдет для этой страницы.
Возможно ли это, и если да, то как можно преодолеть эти #document
элементы?
P.S. дайте мне знать, если есть простой способ скопировать фактический текст, как на картинке с консоли, и я сделаю это для всей страницы.
Это , а не , дубликат этого вопроса, потому что это касается нескольких вложенных фреймов с #document
элементами, которые Selenium, очевидно, не может пройти. Все представленные примеры имеют только один (i) кадр . Я знаю, как переключиться на iFrame, но, кажется, невозможно переключиться на элемент или фрейм во вложенных фреймах, которые содержат #document
, используя только Selenium; JQuery является решением этой проблемы, поэтому я принял ответ ниже.
Мне действительно все равно, если он будет ошибочно закрыт как дубликат, так как я получил решение, но я на 100% уверен, что это отдельная проблема от простого перехода на iFrame.