Selenium - открыть несколько ссылок в NewTabs - PullRequest
1 голос
/ 19 марта 2019

Я использую Python 3.7.2, установил Selenium с помощью PIP. Я на Windows 10 1809 машина. Я использую хромедрайвер. Я могу использовать пример кода из документации. До сих пор я был в состоянии открыть сайт и выполнить поиск, но я застрял на препятствии ниже (для меня), и я не могу понять, как пройтись по списку ссылок, чтобы открыть.

Ниже приведен код для элемента «Единый список». Когда я нажимаю на заголовок, он открывает страницу.

<a class="clickable" style="cursor:pointer;" onmousedown="open_listing_detail('abcd321', '0', false)" title="View Listing Detail" key="abcd321">Some xyz Listing </a>

На каждой странице около 20 наименований. Мне нужно открыть эти 20 предметов в NewTabs.

Если нет, то я бы хотел открыть ссылку -> получить информацию со страницы -> закрыть страницу -> открыть вторую ссылку -> повторить

Для перехода на следующую страницу мне нужно нажать на следующую кнопку. Для этого элемента ниже приведен код.

<li key="2" class="pageLink page">Next</li>

Я новичок в программировании / написании сценариев. Дайте мне знать, если вам понадобится дополнительная информация для уточнения моего запроса.

1 Ответ

0 голосов
/ 20 марта 2019

Хорошо, если я правильно понимаю ваш запрос, вот решение.

# iterate while next button is enabled
while (driver.find_element_by_xpath("//li[@class='pageLink page' and .='Next']").is_enabled()):
    # get all the links in the current page
    links  = driver.find_elements_by_xpath("//a[@class='clickable' and contains(@onmousedown,'open_listing_detail')]")
    baseURL = driver.current_url
    # open the link and perform operation in new tab
    for link in links:
        # click on link
        link.click()
        print(driver.title)
        print(driver.current_url)
        #close the tab
        # click on back
        driver.back()
        # alternatively you can use the url
        #driver.get(baseURL)
driver.find_element_by_xpath("//li[@class='pageLink page' and .='Next'].click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...