2016-12-12 2 views
0

Использование Python 3.4 и SeleniumТест строка против current_url в селене

Я пытаюсь проверить текущий веб-страницу против строки. Так, например:

while(webdriver.current_url == "https://www.youtube.com/"): 
     print("sleep") 
     time.sleep(5) 

Однако это не работает. Я попытался распечатать ссылки и просто скопировать и вставить его в строку моей проверки, но это тоже не работает.

Любая помощь очень ценится.

Мое предположение, что webdriver.current_url не возвращает строку, но я заключил ее в str() в python, и это все еще не работает. Я также попытался сделать current_url меньше, делая current_url[1:-1] и так далее, это не помогло, поэтому я не уверен, что еще я могу попробовать.

+0

вы не отображается весь код, так что нельзя сказать точно, что происходит. Вы также не определили, что означает «не работает», или отображается ошибка. См. Мой ответ в любом случае –

ответ

0

YouTube может зачистить конечный / или добавить параметры строки запроса автоматически после перехода к URL-адресу. Попробуйте:

while('https://www.youtube.com' in webdriver.current_url): 
+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

0

webdriver это имя питона модуль, который вы должны были импортировать с помощью: 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 например я создаю)

Смежные вопросы