使用jython中的函数java构造(Predicate)

时间:2012-04-27 21:53:32

标签: java python jython selenium-webdriver

所以,我正在尝试使用jython中的selenium java库(是的,我知道selenium有一个python接口,但是出于公司团队合作的充分理由,访问纯java库更有意义,如果它可以做得好)

我只想在这里尝试示例脚本:http://seleniumhq.org/docs/03_webdriver.html#introducing-the-selenium-webdriver-api-by-example

我使用以下jython代码实现了它:

from org.openqa.selenium.firefox import FirefoxDriver
from org.openqa.selenium import By
from org.openqa.selenium import WebDriver
from org.openqa.selenium import WebElement
from org.openqa.selenium.support.ui import ExpectedCondition
from org.openqa.selenium.support.ui import WebDriverWait

driver = FirefoxDriver()
driver.get('http://www.google.com')
element = driver.findElement(By.name('q'))

# The array wrapper around the string is the only weird thing I encountered
element.sendKeys(["Cheese!"])
print "Page title is: " + driver.getTitle()

class ExpectedConditionTitle(ExpectedCondition):
  def apply(d):
    print(type(d))
    return d.title.toLowerCase().startsWith(["cheese!"])
  def equals(d):
    pass

print(type(driver))
WebDriverWait(driver, 10).until(ExpectedConditionTitle().apply())
print driver.getTitle()
driver.quit()

它正在考虑ExpectedCondition位。我无法弄清楚如何为所需的品种制作子类,直到。我的代码中出现了以下错误:

最后

追溯(最里面):   文件“Example.py”,第24行,在?   文件“Example.py”,第19行,申请中 AttributeError:'instance'对象没有属性'title'

追溯(最里面):   文件“Example.py”,第24行,在?   文件“Example.py”,第19行,申请中 AttributeError:getTitle

追溯(最里面):   文件“Example.py”,第22行,在? TypeError:until():第一个arg无法强制转换为com.google.common.base.Function或com.google.common.base.Predicate

ExpectedCondition interface基本上只是Guava Predicate interface的前线。

我对python或java不太了解这一点。任何人都有任何想法如何实现这一目标?

0 个答案:

没有答案