Я использую Selenium WebDriver, чтобы получить внутреннюю корпоративную веб-страницу, которая является формой поиска. Мой код успешно откроет браузер и откроет целевую страницу, но в URL-адресе присутствует нежелательный двойной знак sh, который влияет на последующее поведение формы поиска.
Вместо отображения 'http://example.web.company.com/directory/subdirectory/target_page.cfm' я получаю: 'http://example.web.company.com//directory/subdirectory/target_page.cfm'
Примечание double sla sh after ".com ». Кто-нибудь знает, как / почему вставляется дополнительный sla sh и как я могу его предотвратить?
Это несколько сложно, потому что мне нужно выполнить внутренний вход в систему, прежде чем браузер откроет страницу. Он перенаправляет на логин, заполняет подсказки, а затем приведенный ниже код успешно загрузит запрошенную страницу. Он просто вызывает версию double sla sh.
import getpass
import requests, lxml.html
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# Get user input credentials
user = input('Enter ID: ')
password = getpass.getpass('Password: ')
# Driver
driver = webdriver.Chrome(executable_path=r'C:\Drivers\Chromedriver\chromedriver.exe')
# Target web page
driver.get('http://example.web.company.com/directory/subdirectory/target_page.cfm')
# Navigate Logon Page
elem = driver.find_element_by_id('ID')
elem.send_keys(user)
elem = driver.find_element_by_id('PASSWORD')
elem.send_keys(password)
elem = driver.find_element_by_id('Submit')
elem.click()
Если затем я попытаюсь выполнить код для поиска чего-либо с помощью веб-формы, версия url double sla sh успешно отобразит список результатов для частично подобранного поискового термина (нормальное поведение). Но если я ввожу точный (действительный) поисковый термин, я получаю сообщение об ошибке, которое, как мне кажется, связано с относительными ссылками. Но я не контролирую эти страницы, я всего лишь пользователь.
# Search routine from page returned above
item = input('SEARCH TERM: ')
elem = driver.find_element_by_name('search_name')
elem.send_keys(item)
elem.send_keys(Keys.RETURN)
Этот сайт предоставил некоторые сведения об одиночных и двойных URL-адресах sh и относительных ссылках: https://sitebulb.com/hints/internal/url-contains-a-double-slash/
Эти потоки stackoverflow затрагивают webdriver и driver.get (), но я не смог найти ответ на вопрос: откуда берется дополнительный sla sh и как предотвратить это?