代码之家  ›  专栏  ›  技术社区  ›  mikezang

在JavaScript中单击按钮/链接的Python

  •  0
  • mikezang  · 技术社区  · 8 年前

    我想通过单击一个按钮来显示更多页面来运行一个JavaScript函数,如下所示:

    <div class="loading" style="display:none;">
      <p class="btn blue"><span>さらに表示</span></p>
      <a href="javascript:void(0);" onclick="get_more();"></a>
    </div>
    

    more_info_button = driver.find_element_by_tag_name('a').get('href=javascript:void(0);')
    more_info_button.click() 
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Andersson    8 年前

    如果要单击包含属性的链接 @href "javascript:void(0);" ,尝试

    more_info_button = driver.find_element_by_xpath('//a[@href="javascript:void(0);"]')
    more_info_button.click() 
    

    与CSS选择器相同:

    more_info_button = driver.find_element_by_css_selector('a[href="javascript:void(0);"]')
    

    按前项文字定位连结:

    more_info_button = driver.find_element_by_xpath('//a[preceding-sibling::p[.="さらに表示"]]')
    

    更新

    from selenium.webdriver.support.ui import WebDriverWait
    
    topics_number = len(driver.find_elements_by_class_name('topics'))
    more_info_button.click()
    WebDriverWait(driver, 10).until(lambda driver: len(driver.find_elements_by_class_name('topics')) > topics_number)
    extended_list = driver.find_elements_by_class_name('topics')
    
    推荐文章