Как выбрать элемент без заголовка с помощью Selenium и Python? - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь указать на эту кнопку, но похоже, что у нее нет метки или заголовка.

Кнопка является дополнительной кнопкой другой и появляется только при нажатии первой кнопки .

<div class="w-dialog w-css-reset" style="background: rgba(0, 0, 0, 0.7); bottom: 0px; color: rgb(255, 255, 255); display: block; left: -39.1875px; line-height: 34px; max-height: 319.691px; opacity: 1; overflow: hidden auto; position: absolute; transition: opacity 120ms ease 0ms, transform 120ms ease 0ms; transform: scaleY(1); transform-origin: center bottom; --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor:rgba(0, 0, 0, 0.7); --darkreader-inline-color:#e8e6e3; width: 117.563px;" data-darkreader-inline-bgimage="" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="">
<div class="w-css-reset" style="opacity: 1; transition: opacity 100ms ease 48ms;">
<div class="w-css-reset" data-handle="shareButton__dialog" style="box-sizing: border-box; display: inline-block; height: 100%; vertical-align: bottom; width: 100%;"><ul class="w-css-reset w-css-reset-tree">
Скачать

Я пробовал ссылаться на него, используя:

WebDriverWait(self.driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='w-vulcan-v2-button']/div[@data-handle='shareButton__dialog']"))).click()

И я также пробовал:

WebDriverWait(self.driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button/div[@data-handle='shareButton__dialog']"))).click()

1 Ответ

0 голосов
/ 04 августа 2020

Я смог найти решение. Это может не работать в других случаях c, но для этого случая я смог использовать:

WebDriverWait(self.driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='w-css-reset' and @data-handle='shareButton__dialog']"))).click()

Используя модифицированную версию отсюда: Как выбрать элемент на основе ломаной линии с использованием Selenium и Python?

и со следующим импортом:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...