Ich verwende Selen und Phantomjs und ich möchte lernen, wie man ein Kontrollkästchen richtig anklickt. Für exemple auf dieser Seite: https://www.udacity.com/courses/androidPhantomjs klicken Sie auf das Kontrollkästchen
Ich mag würde „Free Kurse“ überprüfen, so dass ich versuchte, dies:
from selenium import webdriver
from selenium.webdriver.common.by import By
def __init__(self):
self.driver = webdriver.PhantomJS(executable_path='/usr/local/bin/phantomjs')
def parse(self, response):
self.driver.get(response.url)
element = self.driver.find_element(By.XPATH, '//div[@class="checkbox"]/label[contains(.,"Free Courses")]')
self.driver.execute_script("arguments[0].click();", element)
Das Problem ist, dass es nichts zu werden braucht scheint klicken: mach einen Screenshot mit self.driver.save_screenshot('screenshot.png')
gibt es alle Ergebnisse, nicht gefiltert. Ist es etwas, was ich falsch mache?
Warum nicht verwenden 'self.driver.find_element (By.XPATH,‚// div [@ class = "Checkbox"]/Label [enthält (.“ Kostenlose Kurse ")] '). Click()'? Sie sollten auch 'input' Element anstelle von' label' verwenden. – Andersson
Die .click() Funktion scheint in PhantomJS nicht unterstützt zu werden, siehe: http://stackoverflow.com/questions/15739263/phantomjs-click-an- element Es stimmt, dass ich das Etikett falsch benutzt habe. –