【问题标题】:Using AutoIT with Selenium将 AutoIT 与 Selenium 一起使用
【发布时间】:2015-08-22 10:32:54
【问题描述】:

感谢您回答我之前的问题,但随着一个问题的解决,另一个问题显然找到了。

与 Flash 游戏本身的交互现在是问题所在。我曾尝试研究如何在 Selenium 中做到这一点,但无法做到。我见过 FlashSelenium、Sikuli 和 AutoIT。

我只能在 Java 中找到 FlashSelenium 的文档,对我来说使用 AutoIT 比使用 Sikuli 更容易,因为我必须学习使用 Jpython 来创建我想要的那种脚本,我并没有偏离学习只是试图尽快完成这件事。至于 AutoIT,唯一的问题是我不明白如何将它与 seleium 一起使用

from selenium import webdriver
import autoit
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://na58.evony.com/s.html?loginid=747970653D74727947616D65&adv=index")
driver.maximize_window()
assert "Evony - Free forever " in driver.title

到目前为止,我有这个,它正在做应该做的事情,即使用该“driver.get”创建一个新帐户,但是当我到达该页面时,它全是闪存,我无法与网页,所以我必须使用 AutoIT,但我不知道如何让它从硒停止的地方“拾取”。我希望它与网页上的按钮进行交互,并通过查看 stackoverflow 上的上一篇文章,我可以使用 (x,y) 来指定位置,但不幸的是,该文章没有解释这一点。任何和所有信息都会很棒,谢谢。

【问题讨论】:

  • 缺少的链接:imgur.com/Udv1086
  • 你身边的evony.com是用Python开发的吗?如果是 - 你使用过任何框架吗?

标签: python web-scraping


【解决方案1】:

是的,您可以使用任意数量的抓取库(scrapybeautiful soup 都易于使用且非常强大)。不过就个人而言,我喜欢Selenium 和它的python bindings,因为它们是最灵活的。您的最终脚本将如下所示:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://xx.yy.zz")

# Click the "New comer, click here to play!" button
elem = driver. find_element_by_partial_link_text("Click here to play")
elem.send_keys(Keys.RETURN)

您能否发布页面的来源(可能使用Pastebin)?

编辑:已更新,向您展示如何点击“点击此处播放”按钮。

【讨论】:

  • 但这看起来不像 HTML,可能是一个 Flash 游戏——这意味着与之交互会非常困难。
  • @charlesreid1 这是图片 1 中显示的页面的来源:pastebin.com/S4fQ40Uv
  • @charlesreid1 这是图片中实际页面的源代码:pastebin.com/m8TUHZD7(If 你一直向下滚动,接下来的两个链接会有意义),这是“s2. html”:pastebin.com/2D6JNKbM。最后一个为“2.html”:pastebin.com/9AxAsCQg
  • 这使用了 flash(你会在 s2.html 中注意到一堆关于 Flash 的 cmets)。正如in this thread 所提到的,python-spidermonkey 可能会实现这一点,但除了 Selenium 之外,我无能为力。
猜你喜欢
  • 2013-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-23
  • 2013-04-29
  • 2012-03-21
相关资源
最近更新 更多