Открытие приобретенного URL в той же вкладке, а не загрузка в новом окне
Я веб-любитель, использующий Selenium с Django для некоторого онлайн веб-скрейпинга. Я создал веб-приложение, которое перебирает различные даты рождения, чтобы найти действительные учетные данные для входа в систему, но после входа в систему оно открывает новое окно, чтобы показать результаты. Я хочу, чтобы полученный URL (полученный через функцию driver.get) открывался на той же вкладке, а не в новом окне всякий раз, когда я успешно вхожу в систему.
# Django
from django.shortcuts import render
from django.http import HttpResponse
# Selenium
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
def search_student(registration, dob, set_driver):
set_driver.get("http://clearance2.giki.edu.pk:8005/ranks/")
username = set_driver.find_element(By.NAME, "username")
password = set_driver.find_element(By.NAME, "password")
username.send_keys(registration)
password.send_keys(dob)
set_driver.find_element(By.NAME, "bt1").click()
return set_driver
# Create your views here.
def index(request):
if request.POST:
login_data = request.POST.dict()
reg_no = login_data.get("reg_no")
birth_year = int(reg_no[0:4]) - 19
date = (birth_year * 10000) + 101
found = False
op = webdriver.ChromeOptions()
op.add_argument('headless')
driver = webdriver.Chrome(ChromeDriverManager().install(), options=op)
count = 1
while (count < 6) and (not found):
date = (birth_year * 10000) + 101
for i in range(0, 383):
driver = search_student(reg_no, date, driver)
if driver.current_url == "http://clearance2.giki.edu.pk:8005/ranks/ranks.php":
print(f"successfully logged in with DOB {date}")
found = True
driver.quit()
break
date += 1
if date % 100 == 32:
date -= 32
date += 100
birth_year += pow(-1, count + 1) * count
count += 1
option = webdriver.ChromeOptions()
option.add_experimental_option("detach", True)
driver = webdriver.Chrome(ChromeDriverManager().install(), options=option)
search_student(reg_no, date, driver)
return HttpResponse("refer to the new tab")
else:
return render(request, 'index.html')