我想加载我的驱动程序,直到我的current_url包含“某事”。我尝试了以下代码:
self.url = self.driver.current_url
try:
element = WebDriverWait(self.driver, 20).until(EC.title_contains("XXX", "YYY", "ZZZ"))
except:
print "\n IMPERFECT URL \n"
finally:
self.driver.quit()
但是这种方法使用标题搜索..我想检查我当前的URL是否有可能的字符串集。我怎么做?另外,我想在同一个网址中检查三组字符串。有人可以帮忙吗?我是Selenium的新手。
答案 0 :(得分:0)
我认为在expected_conditions
类中不存在你想要的定义。但是你可以定义自己的expected_conditions
,在这两个问题中提供了关于这个主题的很好的解释:
在任何情况下,您都可以使用lambda expressions在WebDriverWait
中定义您的功能。
我希望这可以帮到你。
答案 1 :(得分:0)
我不太了解你想要进行的测试。无论如何,您可以通过可调用并测试您想要的任何内容。以下是测试当前网址中是否存在google
,blah
或foo
的工作代码示例:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Chrome("/home/ldd/src/selenium/chromedriver")
driver.get("http://google.com")
def condition(driver):
look_for = ("google", "blah", "foo")
url = driver.current_url
for s in look_for:
if url.find(s) != -1:
return True
return False
WebDriverWait(driver, 10).until(condition)
driver.quit()
(显然,Chrome驱动程序的路径必须根据您自己的情况进行调整。)
只要condition
的返回值为真值,等待就会结束。否则,将引发TimeoutException
。如果您从"google"
移除("google", ...)
,则会获得TimeoutException
。