Невозможно щелкнуть элемент с помощью Selenium - PullRequest
1 голос
/ 07 ноября 2019

В таблице на странице есть элемент, по которому я хочу щелкнуть, но я просто не могу щелкнуть. Использование селена chromedriver и python.

Уже пробовал щелкать, используя ID и xPath, но пока не повезло.

Это HTML-код элемента, который я пытаюсь щелкнуть -

image xlink:href="somerandomlink" class="tab-button-zone-image" width="30" height="9"></image

Элемент также имеет код внешнего виджета, под которым приведенный выше код для фактического элемента, который я хочуклик можно найти -

<div class="tab-zone tab-widget tabSuppressVizTooltipsAndOverlays tabZone-dashboard-object fade-bg" id="tabZoneId26" style="z-index: 35; width: 30px; height: 22px; top: 78px; left: 1315px;">

Полный код блока:

<div class="tab-zone tab-widget tabSuppressVizTooltipsAndOverlays tabZone-dashboard-object fade-bg" id="tabZoneId26" style="z-index: 35; width: 30px; height: 22px; top: 78px; left: 1315px;"><div class="tab-zone-margin" style="top: 0px; left: 0px; bottom: 0px; right: 0px; position: absolute; background-color: rgba(0, 0, 0, 0); border-width: 0px; border-style: none; border-color: rgb(0, 0, 0);"><div class="tab-zone-padding" style="top: 0px; left: 0px; bottom: 0px; right: 0px; position: absolute;"><div class="tab-ReactView fade-in"><div role="button" tabindex="0" class="tab-custom-button" style="user-select: none; -webkit-tap-highlight-color: transparent;"><div class="tab-button-object" title="Using default button image because we couldn't load '//ubsprod.msad.ubs.net/UserData/wx00227/RF/Desktop/v20190919/GDD Metadata - DQ Metrics_Testing.twb Files/Image/Buttom.jpg'" aria-label="Using default button image because we couldn't load 'Some BS here’" style="width: 30px; height: 22px;"><div class="tab-button-object-hover"><svg class="image-disabled-svg" width="30" height="9"><defs><filter id="grayscale"><feColorMatrix values="0.3333 0.3333 0.3333 0.17 0
                           0.3333 0.3333 0.3333 0.17 0
                           0.3333 0.3333 0.3333 0.17 0
                           0      0      0      1    0"></feColorMatrix></filter></defs><image xlink:href="some hyperlink" class="tab-button-zone-image" width="30" height="9"></image></svg></div></div></div></div></div></div></div>

Я использовал следующий код:

elem1= driver.find_element_by_id('tabZoneId26')
elem1.click()

и

elem= driver.find_element_by_id('//*[@id="tabZoneId26"]/div/div/div/div/div/div/svg/image')
elem.click()

Оба не работали. Боюсь, не могу поделиться ссылкой на страницу.

Любая помощь будет принята с благодарностью. Спасибо.

1 Ответ

0 голосов
/ 07 ноября 2019

Induce WebDriverWait И element_to_be_clickable () И после Xpath

WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//div[@id='tabZoneId26']//*[name()='svg']//*[name()='image'][@class='tab-button-zone-image']"))).click()

Вам необходимо импортировать следующие библиотеки для выполнения кода выше.

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