Получение "элемента не видимого" с помощью Python Selen для приложения-браузера SAP EPM - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь автоматизировать приложение SAP EPM с помощью Selenium Python. Это приложение на основе браузера. Я могу открыть домашнюю страницу, после чего мне нужно нажать на одну плитку. Но я не смог щелкнуть по нему. Там написано «элемент не виден».

Я пытался использовать xpath, id, но не повезло.

Tile

Tile HTML:

<div class="tile tile-webdyn draggable tileBGColor ui-draggable ui-draggable-handle 
                 ui-droppable border-norm" id="PLANCHGWO" style="position: relative;">
  <div class="tileName">
    <center>Change PM Order</center>
  </div>
  <div class="tileImage">
    <center>
      <img width="50px" height="50px" src="EDWO.png">
    </center>
  </div>
</div>

1 Ответ

0 голосов
/ 17 октября 2019

Вы можете попробовать вызвать wait, а затем щелкнуть нужный WebElement с Javascript, чтобы обойти ошибку not visible, которую вы видите.

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC



# wait for element to exist, then store it in tile variable
tile = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//center[text()='Change PM Order']")))

# click the element with Javascript
driver.execute_script("arguments[0].click();", tile)

Если это не сработает, нам, вероятно, понадобитсячтобы увидеть полную страницу HTML, чтобы понять элемент, который вы пытаетесь щелкнуть. Возможно, он скрыт в iframe или скрыт другими элементами на странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...