我想要获得href。它是下一页按钮。我按class_name = next
选择元素。这是我的代码:
elem = browser.find_element_by_class_name('next').click()
出现错误Element is not clickable at point (801, 553)
我认为这是因为所选元素是<li>
标记,并且它没有on_click()
方法。
如何获得<a>
标记的onclick?它没有id或类。
这是HTML:
<li id="next_pag_1" class="next">
<a href="http://www.infoempleo.com/ofertas-internacionales/pagina_2/"
onclick="paginarDatos($(this).parent('#pagination li').attr('id')); return false;">
<span class="icon-chevron-right"></span>
</a>
</li>`
我正在尝试抓取此页面:http://www.infoempleo.com/ofertas-internacionales/ 并希望使用selenium点击下一页。 任何帮助都感激不尽。
答案 0 :(得分:1)
尝试
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
element = WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By. XPATH, '//li[@id="next_pag_1"]/a')))
element.click()
答案 1 :(得分:0)
导致此问题的Chrome浏览器。为了公平对待用户,Chrome会点击中心的元素。某些元素在中心无法点击。所以,这就是我所做的:
elem = browser.find_element_by_class_name('next')
action = ActionChains(browser)
action.move_to_element_with_offset(elem, 30, 20)
action.click()
action.perform()
我移动到偏移(elem, 30, 20)
的元素。元素是36x36,因此30x20不在元素的中间。然后使用ActionChains执行单击并运行。