from selenium import webdriver
driver = webdriver.Chrome()
driver.get("chrome://settings")
advanced = driver.find_element_by_css_selector("#advancedToggle > span")
advanced.click()
Вышеприведенный код не работает. Чтобы узнать, к чему относится эта расширенная переменная, вы можете перейти к вставке "chrome://settings" в ваш браузер (работает только в том случае, если вы используете хром) и прокручивать вниз, где вы видите переключатель "Дополнительно".
У этого переключателя даже есть id "advancedToggle"
но я не могу найти что-либо на этой странице любым методом (id, class, css, xpath).
Возможно ли, что некоторые страницы просто устойчивы к автоматизации (если это правильный термин)? Если да, есть ли способ определить, на каких страницах нельзя автоматизировать?
Я поставил этот последний вопрос в цитате блока, потому что этот вопрос был отмечен как дубликат, но пока этот пример появился где-то еще, я не думаю, что был ответ на вопрос в блоке...
Вы должны использовать /deep/
для прохождения через shadow-root
элемент:
body /deep/ #advancedToggle > span
Код будет выглядеть так:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("chrome://settings")
advanced = driver.find_element_by_css_selector("body /deep/ #advancedToggle > span")
advanced.click()
Элемент Shadow-root выглядит следующим образом:
вы можете найти его, нажав F12
а затем перейдите на вкладку " Elements
". Затем в DOM вы найдете shadow-root
.
shadow-root
? Я не вижуshadow-root
в исходном коде страницы. Извините, если этот вопрос кажется довольно элементарным!