2016-07-30 8 views
2

Arbeiten in Python, Selen, Win 7, ich möchte auf sowcomment klicken, nachdem es klickbar ist, dass auf dieser webPage befindet, behandelt von wait dann möchte ich auf showmore Comments Schaltfläche klicken, um weitere Kommentare zu sehen, um zu kratzen mehr Kommentare. Nach dem ersten Button kann ich Kommentare extrahieren.Wie kann ich mit selen python3 auf die zweite Schaltfläche auf einer Webseite klicken?

from selenium import webdriver 
from selenium.common.exceptions import NoSuchElementException 
import selenium.common.exceptions 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support import expected_conditions as EC 
import selenium.webdriver.support.ui as UI 

driver = webdriver.Firefox() 
driver.get("http://www.aljazeera.com/news/2016/07/erdogan-west-mind-business-160729205425215.html") 
wait = UI.WebDriverWait(driver, 10) 
next_page_link = wait.until(
       EC.element_to_be_clickable((By.ID, 'showcomment'))) 
next_page_link.click() 

wait = UI.WebDriverWait(driver, 20) 
next_page_link2 = wait.until(
       EC.element_to_be_clickable((By.LINK_TEXT, 'Show more comments'))) 
next_page_link2.click() 

v = driver.find_elements_by_class_name('gig-comment-body') 
print(v) 
for h in v: 
    print(h.text) 

aber zweite Taste kann nicht eher geben die Ausnahme klicken:

selenium.common.exceptions.TimeoutException:

Was ist das Problem?

+1

Könnten Sie HTML für diesen Link hier teilen ?? Oder hast du ein paar andere Locators ausprobiert? Oder versuchen Sie es mit 'By.PARTIAL_LINK_TEXT' .. –

+0

@SaurabhGaur Für HTML, gab ich Link oben Sie können gehen. Ich habe auch andere Selektoren ausprobiert, aber alles vergebens. – Ali

+0

Ich bin nicht in der Lage, die HTML zu sehen, indem Sie Ihren Link dieses Mal geben, weil ich nicht mit PC bin, deshalb sage ich Ihnen teilen hier, dass Link HTML .. –

Antwort

0

Ich glaube, Sie versuchen execute_script() verwenden sollten, wie unten auszuführen klicken:

next_page_link2 = wait.until(
     EC.element_to_be_clickable((By.XPATH, '//div[contains(text(),"Show more comments")]'))) 

#now click this using execute_script 
driver.execute_script("arguments[0].click()", next_page_link2) 

Hoffe, es hilft ... :)

+0

@Saurah Gaur. Noope. – Ali

+0

@Ali gibt es irgendeine Ausnahme ?? –

+0

@Saurah Gaur. Die selbe Ausnahme: 'Element kann nicht an Punkt geklickt werden (546.9833374023438, 23.850006103515625)' – Ali