V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ashhh
V2EX  ›  浏览器

selenium + PhantomJS()无法定位页面元素

  •  
  •   ashhh · 2017-09-20 22:26:01 +08:00 · 3416 次点击
    这是一个创建于 2619 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用 selenium +chrome() 写了一个爬取 http://www.rainpat.com/Home/Index ‘’ 自动下载专利的爬虫。 一开始使用的 chrom,用的是 xpath 定位元素()右键审查元素,然后复制 xpath )一切正常 [code=php] from selenium import webdriver driver = webdriver.PhantomJS() driver.maximize_window() driver.get('http://www.rainpat.com/Home/Index') new = driver.find_element_by_xpath('/html/body/div[4]/span').click() login = driver.find_element_by_xpath('//[@id="S_top_content"]/div[1]/div[2]/ul/li/a').click() name = driver.find_element_by_xpath('//[@id="SLoginform"]/table/tbody/tr[1]/td[2]/span/input[1]') name.send_keys(name) password = driver.find_element_by_xpath('//[@id="SLoginform"]/table/tbody/tr[2]/td[2]/span/input[1]') password.send_keys(paseeword) login2 = driver.find_element_by_xpath('/html/body/div[3]/div[3]/a[1]/span/span[1]') login2.click() driver.implicitly_wait(5) driver.maximize_window() close22 = driver.find_element_by_xpath('/html/body/div[4]/span').click() driver.maximize_window() search = driver.find_element_by_xpath('/html/body/table/tbody/tr[2]/td/form/div[2]/input[1]') search.send_keys(str(105636083)) driver.implicitly_wait(2) search_click = driver.find_element_by_xpath('/html/body/table/tbody/tr[2]/td/form/div[2]/input[2]').click() driver.refresh() driver.implicitly_wait(10) print('download') driver.maximize_window() downloads = driver.find_element_by_xpath('//[@id="S_patentlistup"]/div[2]/table/tbody/tr/td[2]/div[4]/span[4]') [/code] (其中我写了很多刷新和最大化,因为我发现对于同一段代码执行多次有时候能够定位到,有时候不能。我发现加了等待和刷新就可以了。) 但是当我把浏览器换成(driver = webdriver.PhantomJS())之后,在( downloads = driver.find_element_by_xpath('//*[@id="S_patentlistup"]/div[2]/table/tbody/tr/td[2]/div[4]/span[4]'))这一句中,这个元素一直定位不到 报错:NoSuchElementException: 为什么?

    littlewey
        1
    littlewey  
       2017-09-21 01:46:37 +08:00 via iPhone
    保证找 xpath 时候和 PhantomJS 里的 ua 是一致的了么?
    ashhh
        2
    ashhh  
    OP
       2017-09-21 09:10:40 +08:00
    @littlewey 额 别的 xpath 我都测试了 好像只有这一个不行……另外 PhantomJS 里怎么看 xpath ( = =)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   989 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:22 · PVG 04:22 · LAX 12:22 · JFK 15:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.