Найти элемент по CSS Разница в поведении селектора - PullRequest
0 голосов
/ 13 апреля 2020

Это фрагмент xml [div id=":6r" class="Ar Au" style="display: block;"]

Чтобы найти элемент с помощью селектора css, я попытался дать элементу div имя класса с точкой (.), Но не сработало

driver.find_element_by_css_selector("div.Ar.Au").send_keys("ABC") 

Однако сработало ниже,

driver.find_element_by_css_selector(".Ar.Au div).send_keys("ABC")

Может кто-нибудь подсказать, почему не сработал 1-й?

Ниже ошибка войти с помощью 1-й опции:

selenium.common.exceptions.ElementNotInteractableException: Сообщение: элемент не взаимодействует

1 Ответ

0 голосов
/ 13 апреля 2020

div.Ar.Au означает найти <div>, который имеет эти имена классов (Ar и Au) в качестве атрибута. Таким образом, в этом случае будет определено местоположение <div id=":6r" class="Ar Au" style="display: block;">

.Ar.Au div. Это означает, что нужно найти дочерний тег <div> под тегом, который имеет имя класса (Ar и Au) , Таким образом, этот объект находит дочернего элемента <div> в <div id=":6r" class="Ar Au" style="display: block;">

Примечание : точка (.) используется в селекторе CSS для представления имени класса и выбора составных классов

...