我的selenium代码通过等待网站标题更改来检查完成的子例程,该子例程运行良好。代码如下所示:
waitUntilDone = WebDriverWait(session, 15).until(EC.title_contains(somestring))
但是,这有时可能会失败,因为站点的登录页面在手动网站访问后发生变化。服务器会记住您离开的位置。这迫使我检查另一个条件(网站标题="notestring2)。
以下是我到目前为止所想到的(据我所知也有效):
try:
waitUntilDone = WebDriverWait(session, 15).until(EC.title_contains(somestring)) # the old condition
except:
try:
waitUntilDone = WebDriverWait(session, 15).until(EC.title_contains(somestring2)) # the new other condition which is also valid
except:
print "oh crap" # we should never reach this point
这些条件中的任何一个始终为真。我不知道你是哪一个。
有没有什么方法可以在这些等待中包含一个“或”,或者让try/⃣块看起来更好?
看起来硒会让你通过创建自己的类来做到这一点。查看此处的文档:http://selenium-python.readthedocs.io/waits.html
下面是针对您的情况的快速示例。请注意,关键是在类中有一个名为 __call__
的方法,用于定义所需的检查。Selenium将每500毫秒调用该函数,直到它返回True或一些非空值。
class title_is_either(object):
def __init__(self, locator, string1, string2):
self.locator = locator
self.string1 = string1
self.string2 = string2
def __call__(self, driver):
element = driver.find_element(*self.locator) # Finding the referenced element
title = element.text
if self.string1 in title or self.string2 in title
return element
else:
return False
# Wait until an element with id='ID-of-title' contains text from one of your two strings
somestring = "Title 1"
somestring2 = "Title 2"
wait = WebDriverWait(driver, 10)
element = wait.until(title_is_either((By.ID, 'ID-of-title'), somestring, somestring2))
问题内容: 我喜欢这样的查询: 在ORMlite中,可以使用以下代码: 如果可以事先知道条件,并且在编码时就可以了,那么我需要动态添加条件。 基本上,这种方法是不够的。它需要其他支持的方法的条件。 感谢您的任何建议。 问题答案: 如果可以事先知道条件,并且在编码时就可以了,那么我需要动态添加条件。 在ORMLite 中有一点语法上的缺陷。您打电话的时候: 该方法得到的是: 您确实可以将其重写为:
我需要合并两个数据帧。为了确保行是唯一的,我需要在合并之前验证“Name”和“Age”是否匹配。我将组合用作主键。这是我的密码: 当我使用多个键(“姓名”和“年龄”)时,这是一个“和”或“或”匹配。我只希望它在“Name”和“Age”匹配时合并,而不是只在“Name”或“Age”匹配时合并。我似乎在文档中找不到这一点,我得到了一些混合的结果。 更新:由于数据原因,我确实需要进行左连接。右边的表是我
我有以下代码: 现在我想再组合一个数组和中的它的值。这是foreach语句中的三个数组。谁能帮我把它加进去。比如我们如何在foreach语句中添加多个。 例如,我想要以下内容: 但是上面的代码给出了。我得到的错误是 分析错误:语法错误,在/homepages/4/d864452909/htdocs/public_html/app/index.php第58行中,意外的“=>”(T_DOUBLE_AR
我是初学者。我了解Wait的基本功能,但我对互联网上不同的教程如何放置和解释它感到困惑。例如,在下面的代码中,它是在加载URL之前放置的。那么,是只等待加载URL,还是等待查找元素,或者两者都是?如果我在try块中使用隐式等待一次,它将适用于我在代码中执行的每个元素搜索,这是真的吗?
我正在尝试迁移应用程序。我正在处理从Hibernate到Spring的数据JPA。 有人能告诉我这是否可以通过
当用户登录到我的java应用程序时,我试图创建一个朋友列表。我有3张桌子,用户,朋友和歌曲。 用户表: 好友表(ID=USER表中的ID) 歌曲表(同样ID=用户) 所以我需要做的是,当用户登录时,从朋友表中选择他们的所有朋友,获取关于这些朋友的所有信息,并选择属于该朋友的每首歌曲。 目前,我有一些sql将选择朋友和他们的信息正确,但我无法管理结合起来,这与获得的歌曲<理想情况下,我希望循环获取每