Python 3.x 编辑文本区域并从字段中复制并且不打开浏览器

Python 3.x Editing text areas and copying from fields and not open browser

看过了Here

我的问题没有具体答案

我正在使用 splinter,这是我放入 shell 和返回的内容。

>>> from splinter.browser import Browser
>>> browser = Browser()
>>> browser.visit('http://www.timestampgenerator.com/tools/md5-generator/')
>>> browser.fill('source','hello')
>>> browser.find_by_id('submit').click()
>>> ans = browser.find_by_id('result')
>>> print(ans)
[<splinter.driver.webdriver.WebDriverElement object at 0x00000010DECEE3C8>]

复制效果不佳。您可以访问 This page 了解我反对的内容。我想问什么 我怎样才能从某个字段中删除文本,所以如果我在完成后打招呼

browser.fill('source','hello')

我可能想在不刷新页面的情况下再次执行此操作,因此我需要删除文本。怎么做?您还可以看到我尝试使用

复制文本
>>> ans = browser.find_by_id('result')
>>> print(ans)
[<splinter.driver.webdriver.WebDriverElement object at 0x00000010DECEE3C8>]

失败,想知道该怎么做。还有最后我如何在不打开firefox窗口的情况下执行此操作,也许只是作为后台进程。

要从 'result' 元素中获取文本,您需要打印所选元素的值。

print(ans.value)

您可以创建一个列表,其中包含要填充 'source' 元素的条目,然后使用 for 循环遍历该列表。不需要删除之前的条目,fill 会覆盖看起来的内容。

这是一个例子,在我的例子中必须输入 1 秒 wait_time 才不会抓错 'result'。

from splinter import Browser

with Browser() as browser:
    browser.visit('http://www.timestampgenerator.com/tools/md5-generator/')
    entries = ['hello', 'goodbye']
    for item in entries:
        browser.fill('source', item)
        browser.find_by_id('submit').click()
        browser.is_text_present('result', wait_time=1)
        ans = browser.find_by_id('result')
        print(ans.value)

对于无头网络浏览器(不打开 window),check out the splinter documentation。您需要获得您选择的网络驱动程序。