0

在我的上一步中,我在从 div 获取文本时遇到了问题,几个小时后我终于得到了我想要的,但下一步并不容易,因为我想循环打印文本(变量)。

我希望你们是放纵的人,我不会因为我是 python 新手而被否决。这是我已经得到的一部分:

import selenium
from selenium import webdriver

driver = webdriver.Firefox()
driver.get('http://example.com//')
botloc = driver.find_element_by_id('botloc').text
print botloc

def repeat():
    while 1 == 1:
        botloc = driver.find_element_by_id('botloc').text
        print botloc

作为预防措施,已更改真实网站地址。

代码的前半部分运行良好,但后半部分不行。输入repeatShell 后,响应为<function repeat at 0x015BBFB0>. 它不是来自 div 的文本,对我(新手)来说,它看起来像对象值或其他东西......当之后的响应print botlocu'26,40'时,为什么我def repeat()的不一样?我该如何解决?

4

1 回答 1

0

selenium.py使用以下代码创建一个文件:

from selenium import webdriver

driver = webdriver.Firefox()
driver.get('http://www.helloworld.com/')
print driver.find_element_by_css_selector("a[href*='privacy']").text

def repeat():
    while 1 == 1:
        print driver.find_element_by_css_selector("a[href*='privacy']").text

repeat() # this is what you need!

将 url 更改为您自己的,并将定位器更改为您的,即driver.find_element_by_id('botloc').text.

然后从命令行: run python selenium.py,它应该可以工作

但是,我怀疑您的测试逻辑,如果您的 DOM 在循环期间发生更改,则会引发异常。

于 2013-05-16T23:32:22.337 回答