können Sie verwenden find_element_by_css_selector
.find_element_by_css_selector("button.button.load-more-button").click()
Sie nicht find_element_by_class_name
verwenden können, wenn Sie mehrere CSS-Klassen haben.
Der Code funktioniert wie folgt:
In [22]: from selenium import webdriver
In [23]: dr = webdriver.PhantomJS()
In [24]: dr.get("http://www.nytimes.com/column/corner-office")
In [25]: btn = dr.find_element_by_css_selector("button.button.load-more-button")
In [26]: btn
Out[26]: <selenium.webdriver.remote.webelement.WebElement at 0x7f50c34d7668>
In [27]: btn.click()
Mit Firefox, Einstellung .maximize_window() funktioniert auch:
from selenium import webdriver
dr = webdriver.Firefox()
dr.maximize_window()
dr.get("http://www.nytimes.com/column/corner-office")
btn = dr.find_element_by_css_selector("button.load-more-button")
btn.click()
auf Firefox und Chtorm nachdem Sie laden Hier klicken um mehr, wenn Sie dann Scrollen müssen, um den Rest zu erhalten, die Schaltfläche ist nach dem ersten Klick nicht vorhanden:
dr = webdriver.Firefox()
dr.maximize_window()
dr.get("http://www.nytimes.com/column/corner-office")
btn = dr.find_element_by_css_selector("button.load-more-button")
btn.click()
print(len(dr.find_elements_by_xpath("//h2[@class='headline']")))
dr.execute_script("window.scrollTo(0, document.body.scrollHeight);")
print(len(dr.find_elements_by_xpath("//h2[@class='headline']")))
Welche gibt Ihnen:
44
66
ist das @Fotis funktioniert? – noor