我意识到这个问题与this和其他SO问题非常相似。但是,我已经玩过了屏幕大小,还有等待时间,这还没有解决问题。
我
这是在PhantomJS中不起作用的代码(但如果我使用chromedriver则可以正常工作):
time.sleep(60)
driver.set_window_size(1024,768)
todays_points = driver.find_elements_by_xpath("//div/a[contains(text(),'Today')]/preceding-sibling::span")
total = 0
for today in todays_points:
driver.set_window_size(1024,768)
points = today.find_elements_by_class_name("stream_total_points")[0].text
points = int(points[:-4])
total += points
driver.close()
print total
我尝试访问的HTML位于div元素中:
<span class="stream-type">tracked 7 Minutes-Recode for <span class="stream_total_points">349 pts</span></span>
<a class="action_time gray_link" href="/entry/42350781/">Today</a>
我想抓住'349 pts&#39;文本。但是,使用PhantomJS时返回的值始终为0,所以我认为它没有找到该元素。
编辑:当我使用print(driver.page_source)
打印html源代码时,我会输出正确的页面,但该元素不可见。使用视图源工具检查chrome,我在这里也看不到元素(但我可以使用inspect元素)。这可能是PhantomJS无法访问该元素的原因吗?