Phantomjs点击复选框

时间:2016-07-28 12:45:08

标签: python selenium-webdriver click phantomjs

我正在使用selenium和phantomjs,我想学习如何正确点击复选框。例如:https://www.udacity.com/courses/android

我想检查"免费课程",所以我尝试了这个:

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)

问题在于它似乎没有点击任何内容:使用self.driver.save_screenshot('screenshot.png')制作屏幕截图,它会提供所有结果,而不会过滤。 这是我做错了吗?

1 个答案:

答案 0 :(得分:0)

当您想要点击xpath元素时,label找到checkbox元素,正如我在您提供的website中看到的那样,无需创建xpath选中Free Course复选框,您只需使用By.NAME找到此复选框,如下所示: -

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.NAME, 'Free Course')
      element.click()

注意: - Selenium提供click()功能来执行元素点击,因此如果您只是执行操作,则无需使用execute_script来执行javascript点击这是通过使用click()函数。

希望它有帮助...:)