Python Selenium - Невозможно щелкнуть по классу диапазона Onclick - PullRequest
0 голосов
/ 05 мая 2020

Я новичок в Selenium и HTML. Я пытаюсь нажать на одну из опций меню навигации.

Вот скриншот:

enter image description here

А вот код Когда я проверяю элемент, я получаю:

<A onclick="click_shelltab2('reports','tab_reports')" href="https://abhow.onesite.realpage.com/100/multishell/shell.htm?c=111101011111000001000001101000010011010010000000100010000000000101001000000100100000000010,176819146,USER&amp;u=100,111111111011100#"><SPAN class="rp-global-nav-menu-item-label-icon fa fa-calendar-check-o"></SPAN><SPAN class=rp-global-nav-menu-item-label-text>Scheduled Events</SPAN></A>
<SPAN class="rp-global-nav-menu-item-label-icon fa fa-calendar-check-o"></SPAN>
<SPAN class=rp-global-nav-menu-item-label-text>Scheduled Events</SPAN>
/a>

Как мне заставить его работать?

Я пробовал использовать следующее:

wait2.until(lambda driver: driver.find_element_by_xpath("//a[@id='tab_reports']")).click()

и

wait2.until(lambda driver: driver.find_element_by_xpath("//a[@text='Scheduled Events']")).click()

и

wait(driver, 10).until(EC.element_to_be_clickable((By.XPATH,"//span[text()='Scheduled Events']"))).click()

Обновление:

при использовании Xpath = `// * [@ id =" tab_reports "] / span / a '

это дает эту ошибку:

ElementClickInterceptedException: element click intercepted: Element <a class="" href="#" onclick="doActionSupportCrossBrowser('Scheduled Events', tab_reports_center);">...</a> is not clickable at point (267, 152). Other element would receive the click: <iframe id="ifrmShell" name="ifrmShell" style="border:none;display:inline;border-left:1px solid #000000;height:100%;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;width:99.95%;" frameborder="0" scrolling="auto" src="/shell_cb/nav/iframe_init.htm"></iframe> (Session info: chrome=81.0.4044.129)

Пожалуйста, помогите.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

Induce WebDriverWait () и element_to_be_clickable () и следующие за xpath

link=WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH,"//a[.//span[text()='Scheduled Events']]")))
link.click()

Если вы получите ту же ошибку, используйте Java исполнитель скрипта для нажатия.

link=WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH,"//a[.//span[text()='Scheduled Events']]")))
driver.execute_script("arguments[0].click();", link)
0 голосов
/ 05 мая 2020

Я вижу, что вы пробовали несколько xpath. Спросите браузер , какой правильный xpath.

Возможные потенциальные проблемы:

  • тайм-аут, установить неявное ожидание: driver.implicitly_wait(10)
  • элемент не виден и не кликабелен -> прокрутите страницу соответственно
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...