Python для запуска функции JavaScript с двумя параметрами - PullRequest
0 голосов
/ 19 сентября 2018

На html-странице есть ссылка

<a href="javascript:ga_and_go('//weathernews.jp/s/topics/?fm=onebox', 'topics_more')">…もっと見る</a> 

, я хочу щелкнуть по ней, я попробовал код, как показано ниже, кажется, что страница не может быть проанализирована, как я могу запустить эту функцию ga_and_go('//weathernews.jp/s/topics/?fm=onebox', 'topics_more'):

more_button = driver.find_element_by_partial_link_text("…もっと見る")
more_button.click()

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

В соответствии с HTML, элемент выглядит как JavaScript , поэтому вам нужно вызвать WebDriverWait и использовать любое из следующих решений:

  • Использование PARTIAL_LINK_TEXT:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, "もっと見る"))).click()
    
  • Использование XPATH:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[contains(.,'もっと見る')]"))).click()
    

Примечание : Вы должны добавить следующий импорт:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
0 голосов
/ 19 сентября 2018

Можете ли вы попробовать использовать приведенный ниже xpath для щелчка по элементу?

//a[contains(@href,'javascript:ga_and_go(')]

more_button = driver.find_element_by_xpath("//a[contains(@href,'javascript:ga_and_go(')]")
more_button.click()
...