# -*- coding: utf-8 -*
import scrapy
import os
from selenium import webdriver
import time
def get_path():
path = os.path.abspath(
os.path.join(
os.path.dirname(
os.path.abspath(__file__)),
os.path.pardir))
return os.path.join(
path, 'tool/phantomjs-2.1.1-linux-x86_64/bin/phantomjs')
browser = webdriver.PhantomJS(get_path())
browser.get('http://www.chinaccm.com/37/372002list.shtml')
elem = browser.find_element_by_id('keyword')
elem.clear()
time.sleep(1)
elem.send_keys('针叶浆'.decode('utf-8'))
browser.find_element_by_xpath(
'//div[@class="search0013"]').click()
time.sleep(1)
print('----------------------{}'.format(browser.current_url))
输出是---------------------- http://www.chinaccm.com/37/372002list.shtml
点击似乎不起作用 但是当我使用chromedriver时,它可以正常工作 # -*- coding: utf-8 -*
import scrapy
import os
from selenium import webdriver
import time
def get_path():
path = os.path.abspath(
os.path.join(
os.path.dirname(
os.path.abspath(__file__)),
os.path.pardir))
return os.path.join(
path, 'tool/chromedriver')
browser = webdriver.Chrome(get_path())
browser.get('http://www.chinaccm.com/37/372002list.shtml')
elem = browser.find_element_by_id('keyword')
elem.clear()
time.sleep(1)
elem.send_keys('针叶浆'.decode('utf-8'))
browser.find_element_by_xpath(
'//div[@class="search0013"]').click()
time.sleep(1)
print('----------------------{}'.format(browser.current_url))
输出是 ---------------------- http://www.chinaccm.com/WebInfoList.aspx?start_date=2016-5-9&end_date=2017-5-9&keyword=%E9%92%88%E5%8F%B6%E6%B5%86&Column=372002
答案 0 :(得分:0)
将您的xpath更改为'//div[@class="search0013"]
Chrome和PhantomJS并不总是以同样的方式处理事情。使用{{1}},您选择包含与Chrome配合使用的按钮的div元素,因为点击会发送到按钮所在的位置。 PhantomJS可能是在div中的其他地方发送点击并错过了按钮。