我希望通过输入具有特定地址部分的特定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的新手......所以我知道什么。
提前致谢!
像这样使用,
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(driver, 1000).until(EC.url_contains("desired_url"))
有关您的用例的更多信息将有助于提供更典型的答案。
但是,要调用具有特定地址部分的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
上面的所有答案都没有运气。不管怎么说,多谢拉。我想我的解释还不够
这对我来说很有把戏。
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)