如何在使用Selenium和Python调用函数之前等待特定的URL加载

问题描述 投票:1回答:1

这是我第一次在stackoverflow上发帖,我对Selenium和Python有点陌生。

URL等于fx时,我将无法运行函数:https://www.example.com

我在另一个讨论中读过this答案,但我不太了解发生了什么。

我希望您花时间回答我的问题。

python selenium url webdriver webdriverwait
1个回答
0
投票

如果您的用例是一旦URL等于https://www.example.com后就运行一个函数,则通过以下任一WebDriverWait引起expected_conditions不相交:

  • url_changes(url):检查当前URL的期望。 url是预期的url,如果不相同,则不能完全匹配,否则返回True,否则返回false。

    url_changes(url)
  • WebDriverWait(driver, 10).until(EC.url_changes("https://www.example.com")) :期望检查当前URL是否包含区分大小写的子字符串。 url是预期的url片段,当url匹配时返回True,否则返回False

    url_contains(url)
  • url_contains(url):检查当前URL的期望。 pattern是预期的模式,必须为完全匹配,如果url匹配则返回True,否则返回false。

    WebDriverWait(driver, 10).until(EC.url_contains("example"))
    
  • url_matches(pattern):检查当前URL的期望。 url是预期的url,必须完全匹配,如果url匹配则返回True,否则返回false。

    url_matches(pattern)
  • :您必须添加以下导入:

    WebDriverWait(driver, 10).until(EC.url_matches("a_matching_pattern_of_the_expected_url"))
    

更新

如果WebDriverWait返回url_to_be(url),则要运行函数,可以使用以下解决方案:

url_to_be(url)
© www.soinside.com 2019 - 2024. All rights reserved.