使用Python 3.4
和Selenium
我试图测试当前网页与字符串。例如:
while(webdriver.current_url == "https://www.youtube.com/"):
print("sleep")
time.sleep(5)
然而,这不起作用。我已经尝试打印出链接,只是将其复制并粘贴到我的支票的字符串部分,但这也不起作用。
非常感谢任何帮助。
我的猜测是webdriver.current_url
没有返回字符串,但是我已经将它封装在python中的str()
中,但仍然无法正常工作。我还尝试通过执行current_url
等来current_url[1:-1]
更小,但没有帮助,所以我不确定我还能尝试哪些其他事情。
答案 0 :(得分:1)
我尝试使用python 3.4
,您分享的代码正在为我工作。
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("https://www.youtube.com/")
time.sleep(5)
print(driver.current_url, type(driver.current_url), type("https://www.youtube.com/"))
while(driver.current_url == "https://www.youtube.com/"):
print("sleep")
time.sleep(5)
在while
循环之前添加以下行以进行调试:
print webdriver.current_url, type(webdriver.current_url) # prints types as 'unicode' for me, but still code is working fine. tried with python 2.7
while(webdriver.current_url == "https://www.youtube.com/"):
print("sleep")
time.sleep(5)
建议检查webdriver.current_url
答案 1 :(得分:0)
YouTube可能会在导航到网址后自动删除跟踪/
或自动添加查询字符串参数。尝试:
while('https://www.youtube.com' in webdriver.current_url):
答案 2 :(得分:0)
webdriver
是您应该导入的python模块的名称:from selenium import webdriver
。因此,它甚至不具有current_url
属性。
你的意思是这样吗?
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.youtube.com/')
if driver.current_url == "https://www.youtube.com/":
print('look, they are equal')
(注意我从我创建的current_url
实例中获取webdriver.Chrome
的值