Как установить флажок, чтобы показать больше строк в нижней части страницы? - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь очистить страницу с множеством строк данных.Эти данные распределены по нескольким страницам и содержат только 25 строк на каждой странице, если в нижней части не будет изменен раскрывающийся список.

Я рассмотрел обычные выборки классов и имен в Selenium, и в них нет ничего проще.У него есть имена классов, но это несколько имен в одном и том же классе, с которыми find_by_class_name не будет работать.

Из моего исследования я должен использовать xpath, однако все мои попытки ниже не увенчались успехом.

У меня также естьпопытался просто изменить страницу, но та же проблема возникает, когда кнопки не активируются без xpath и xpath не будет работать.

Я попытался собрать Xpath из расширений xpath, чтобы получить его точно, и Selenium по-прежнему выбрасывает меняошибка.

Это фрагмент HTML-кода, который является раскрывающимся списком. Я должен нажать

<select ng-model="ctrl.limit" ng-options="pageSize as pageSize for pageSize in ctrl.pageSizeOptions" ng-change="ctrl.onPageSizeChange()" class="ng-pristine ng-untouched ng-valid ng-not-empty" aria-invalid="false"><option label="25" value="number:25" selected="selected">25</option><option label="50" value="number:50">50</option><option label="100" value="number:100">100</option><option label="500" value="number:500">500</option></select>

, и вот как это выглядит визуально

0m7jlx

Это текущий xpath, который дает мне мой добавочный номер, и как я подаю его в Selenium

    select = Select(driver.find_element_by_xpath("/html[@class=' geolocation svg localstorage sessionstorage audio canvas canvastext video webgl no-emoji inlinesvg supports svgclippaths smil nthchild cssanimations csscolumns csscolumns-width csscolumns-span csscolumns-fill csscolumns-gap csscolumns-rule csscolumns-rulecolor csscolumns-rulestyle csscolumns-rulewidth csscolumns-breakbefore csscolumns-breakafter csscolumns-breakinside cssfilters flexbox flexboxlegacy']/body[@class='nav-menu-open']/blocking-notifications/span/ng-transclude/content-with-sidebar[@class='content-and-sidebar']/div[@class='flex-main page-main']/main[@class='flex-section page-content ntux-wrapper sidebar-open--ntux']/div[@class='tester-app view-contents--ntux']/ng-transclude/content-slot/div[@class='view-contents']/ui-view/div[@class='testcycle main-page-content is-ttl']/div[@class='tab-content']/div[@class='testcase-list main-page-content']/responsive-table/div/div[@class='responsive-table-wrap']/div[@class='responsive-table-pagination']/span/select[@class='ng-pristine ng-valid ng-not-empty ng-touched']"))
select.select_by_visible_text('500')

, и ошибка:

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element:

Ожидается - элемент выбран и можетоткрыть с помощью дальнейших команд

Actual - я получаю сообщение об ошибке, в котором говорится, что элемент не существует

Спасибо за любую помощь!

1 Ответ

1 голос
/ 08 апреля 2019

Можете ли вы попробовать следующий код, посмотрите, поможет ли он.

select=Select(driver.find_element_by_css_selector("select.ng-pristine.ng-untouched.ng-valid.ng-not-empty"))
select.select_by_visible_text("500")

OR *. * 1004

driver.find_element_by_css_selector("select.ng-pristine.ng-untouched.ng-valid.ng-not-empty").click()
driver.find_element_by_css_selector("select.ng-pristine.ng-untouched.ng-valid.ng-not-empty").send_keys(Keys.END)
driver.find_element_by_css_selector("select.ng-pristine.ng-untouched.ng-valid.ng-not-empty").send_keys(Keys.ENTER)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...