我正在使用Selenium2对我的网站进行一些自动化测试,我希望能够获得一些Javascript代码的返回值.如果我foobar()
在我的网页上有一个Javascript函数,并且我想调用它并将返回值放入我的Python代码中,我可以调用什么来做到这一点?
我一整天都在谷歌搜索,没有找到答案,所以如果已经回答,请提前道歉.
我试图从大量不同的网站获取所有可见文本.原因是我想处理文本以最终对网站进行分类.
经过几天的研究,我认为Selenium是我最好的机会.我找到了一种方法来获取所有文本,使用Selenium,遗憾的是同一文本被多次抓取:
from selenium import webdriver
import codecs
filen = codecs.open('outoput.txt', encoding='utf-8', mode='w+')
driver = webdriver.Firefox()
driver.get("http://www.examplepage.com")
allelements = driver.find_elements_by_xpath("//*")
ferdigtxt = []
for i in allelements:
if i.text in ferdigtxt:
pass
else:
ferdigtxt.append(i.text)
filen.writelines(i.text)
filen.close()
driver.quit()
Run Code Online (Sandbox Code Playgroud)
该if
内部条件for
环路消除同一文本多次读取的问题的尝试-它不然而,只有某些网页上按计划工作.(它也使脚本变得更慢)
我猜测我的问题的原因是 - 当要求元素的内部文本时 - 我也得到嵌套在相关元素内的元素的内部文本.
有没有办法解决?有没有某种主要元素我抓住内在的文本?或者是一种完全不同的方式,可以让我达到目标?任何帮助都会非常感激,因为我对这一点没有任何想法.
编辑:我使用Selenium而不是Mechanize和Beautiful Soup的原因是因为我想要JavaScript招标文本