как щелкнуть текстовую ссылку (иностранный язык) с помощью Selenium? (когда класс в анкорном стиле) - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь нажать одну из кнопок (синего цвета), они открывают ту же страницу, когда вы нажимаете на них.

https://i.stack.imgur.com/lj9VV.png

Это проверка правого связанного текста:

   <a id="ctl00_mp_lnkPresenceReproting" class="anchorStyle" onclick="RedirectQuickLinks('Attendance/calendarpage.aspx','5610207277369',2);">
                            דיווח ועדכון</a>

и этого для левого связанного текста (мне удается открыть всплывающее меню, щелкнув его селеном, поэтому проблема заключается только в связанном тексте)

   <a id="innerNavBarItem_47" onclick="navigationManager.navItemClicked(this, 'tabItem_9_3_SpanBackground');" navigateurl="Attendance/calendarpage.aspx" href="javascript:void(0);" title="דיווח ועדכון" tabindex="-1">דיווח ועדכון</a>

Пытался использовать ID. он находит связанный слева текст, но не щелкает по нему. Правильный, даже не находит и выдает ошибку. Когда я пытаюсь использовать xpath для них обоих, щелчок не работает.

Я не могу использовать «поиск элемента по тексту ссылки», потому что он не распознает иврит.

Nohehut = browser.find_element_by_id('tabItem_9_3_SpanBackground')
Nohehut.click()
DivuahvIdkun = browser.find_element_by_xpath('//*[@id="innerNavBarItem_47"]') 
DivuahvIdkun.click()

вот исходная страница: https://hasteb.in/ugujosux.xml

1 Ответ

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

В некоторых сценариях ios локатор 'id' меняется динамически. В одном из ваших кодов я вижу 'id' как 'innerNavBarItem_47', который может измениться в будущем.

Например, если новый элемент / элемент представлен на вашей веб-странице, и если он появляется перед вашим элементом, ваш номер id элемента может быть перенесен на innerNavBarItem_48 из innerNavBarItem_47 . Поэтому всегда go с локаторами xpath или css, если кажется, что идентификатор элемента автоматически генерируется динамически.

Код ниже должен решить вашу проблему

ele = driver.find_element_by_xpath("//a[contains(@navigateUrl,'calendarpage')]")
driver.execute_script("arguments[0].click();", ele)

примечание: Я использовал javascriptexecutor выше, чтобы щелкнуть элемент, учитывая ваше утверждение в вопросе - «Я пытался использовать идентификатор. Он находит связанный слева текст, но не щелкает его».

Мы go для JavascriptExecutor, когда селен не работает.

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