Попытка щелкнуть на дополнительной вкладке, используя селен - PullRequest
0 голосов
/ 23 октября 2019

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

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

    def grabDetails(self):
       facts = self.browser.find_elements_by_xpath("//section[@id='hdp-content']/main/div/div[4]")
       for fact in facts:
           details = fact.text
           print(details)
    def moreFeatures(self):
        view_more_elements = WebDriverWait(self.browser, 20).until(EC.visibility_of_element_located((By.XPATH, "//a[contains(text(),'See More Facts and Features')]")))
        # features.click()
        ActionChains(view_more_elements).double_click().preform()
        # self.browser.execute_script('arguments[0].scrollIntoView(true);', features)

Я пытаюсь распечатать информацию с этой страницы! вот zillow-страница, которую я пытаюсь удалить.

, часть дополнительных разделов под ней

1 Ответ

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

Вы устанавливаете view_more_elements как объект WebDriverWait, а не WebElement. Это предотвратит кликабельность объекта. Вам просто нужно запустить WebDriverWait как собственный вызов, затем .click() элемент.

view_more_xpath = '//div[@class="read-more zsg-centered"]/a'
view_more_elements = WebDriverWait(self.browser, 20).until(EC.visibility_of_element_located((By.XPATH, view_more_xpath))
self.browser.find_element_by_xpath(view_more_xpath).click()

РЕДАКТИРОВАТЬ: вам на самом деле не нужно устанавливать WebDriverWait в view_more_elements. Вы можете просто сделать:

view_more_xpath = '//div[@class="read-more zsg-centered"]/a'
WebDriverWait(self.browser, 20).until(EC.visibility_of_element_located((By.XPATH, view_more_xpath))
self.browser.find_element_by_xpath(view_more_xpath).click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...