如何使python脚本等到输入特定的URL

问题描述 投票:0回答:3

我希望通过输入具有特定地址部分的特定URL来触发python脚本。

这是一个例子:

http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=1234
#1234 can be any random 4 digits Number

基本上我想要在URL中有“http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=”时激活python脚本。

这是我到目前为止写的:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

driver = webdriver.Chrome('./chromedriver')
wait = WebDriverWait(driver, 9999)
desired_url = http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=\d{4}
def wait_for_correct_current_url):
      wait.until(lambda driver: driver.current_url == desired_url)



driver.get("http://www.google.com")
wait_for_correct_current_url(desired_url)
**(Script that activates after entering desired_url)**

我想知道正则表达式是否会成功,但我是python的新手......所以我知道什么。

提前致谢!

python selenium url selenium-webdriver random
3个回答
0
投票

像这样使用,

from selenium.webdriver.support import expected_conditions as EC

WebDriverWait(driver, 1000).until(EC.url_contains("desired_url"))

0
投票

有关您的用例的更多信息将有助于提供更典型的答案。

但是,要调用具有特定地址部分的URL是随机的,您可以通过range()识别范围并通过format()迭代范围以构建完整的URL,您可以使用以下解决方案:

  • 代码块: for i in range(1000,1010): desired_url = "http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER={}".format(i) print(desired_url)
  • 控制台输出: http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=1000 http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=1001 http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=1002 http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=1003 http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=1004 http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=1005 http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=1006 http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=1007 http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=1008 http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=1009

如果您正在寻找随机数作为URL的一部分,您可以使用randrange()生成如下:

  • 代码块: import random for i in range(0,10) : desired_url = "http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER={}".format(str(random.randrange(1000, 9999))) print(desired_url)
  • 控制台输出: http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=8776 http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=1662 http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=3255 http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=1524 http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=6463 http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=4511 http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=3273 http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=7471 http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=4672 http://11.111.11.11:0000/Menu_EXAMPLE.jsp?NUMBER=2828

0
投票

上面的所有答案都没有运气。不管怎么说,多谢拉。我想我的解释还不够

这对我来说很有把戏。

def condition(driver):
look_for = ("Any word within expected URL1", "Any word within expected URL2")
url = driver.current_url
for s in look_for:
    if url.find(s) != -1:
        [Any Script I want to activate]

return False

wait.until(condition)
© www.soinside.com 2019 - 2024. All rights reserved.