【问题标题】:Wait for not equal value [Selenium]等待不相等的值 [Selenium]
【发布时间】:2017-06-09 22:12:27
【问题描述】:

我进行了很多搜索,但似乎无法让 Selenium 等待 id 不具有特定值。我尝试过的一些事情:

超时:

wait.until(EC.text_to_be_present_in_element_value((By.ID, "price"), not " $0.00"))

这会抛出TypeError: 'bool' object is not callable

wait.until(not EC.text_to_be_present_in_element_value((By.ID, "price"), " $0.00")) 

这会抛出TypeError: coercing to Unicode: need string or buffer, bool found

wait.until(EC.text_to_be_present_in_element((By.ID, "price"), not " $0.00")) 

注意:

  • 这是价格 ID 中的唯一值

  • wait = WebDriverWait(browser, 10)

奖励答案:

整个问题是价格从“0.00 美元”开始,然后变为显示加载 gif 的多个元素。最后,它将显示实际价格。为了完成我的任务,我使用下面接受的答案 (until_not) 来检查 0 是否已成为 gif,并使用自定义函数来检查正则表达式是否与“$0”匹配。我使用了来自here 的函数,其正则表达式模式为“\$(?!0)\w”。

【问题讨论】:

    标签: python python-2.7 selenium web-scraping


    【解决方案1】:

    wait 有另一个方法 until_not 可以反转期望

    编辑:尝试:

    wait.until_not(EC.text_to_be_present_in_element_value((By.ID, "price"), " $0.00"))
    

    【讨论】:

    • 这并没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
    • 可以,但是我已经提供了关于如何使用它的说明,作者已经知道了
    • 感谢您的回答,对于我迟到的回复,我深表歉意。我在编辑之前就明白了答案,但是在我意识到我需要更多的工作之后不久。我在我的问题中加入了更多细节,希望能对其他人有所帮助。
    猜你喜欢
    • 2020-04-10
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多