Как отключить открытие страницы в новой вкладке в Selenium Webdriver в Python? - PullRequest
0 голосов
/ 30 мая 2018

Я очищаю сайт: http://www.delhidistrictcourts.nic.in/DLCIS-2016-2.html

На этой странице есть несколько ссылок.Пользователь нажимает на любую из этих ссылок (через веб-драйвер селена).Проблема в том, что когда пользователь нажимает на эти ссылки, он открывается в новой вкладке, потому что все ссылки имеют атрибут ("_target=blank")

Любая идея, как заставить ссылки открываться вта же вкладка?

Вот код, который я написал

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
url = 'http://www.delhicourts.nic.in/DLCIS-2016-2.html'

driver=webdriver.Chrome()
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)
driver.get(url)

try:
    wait.until(EC.presence_of_element_located((By.CLASS_NAME, "submit1"))).click()
except Exception as e:
    print str(e)

enter image description here

1 Ответ

0 голосов
/ 30 мая 2018

Вы можете попытаться обновить значение @target:

link = wait.until(EC.presence_of_element_located((By.LINK_TEXT, "CASE NUMBER WISE")))
driver.execute_script("arguments[0].target='_self';", link)
link.click()

Чтобы применить то же самое для всех ссылок на странице:

links = wait.until(EC.presence_of_all_elements_located((By.TAG_NAME, "a")))
for link in links:
    driver.execute_script("arguments[0].target='_self';", link)

или извлечь @href изссылка и get() это:

link = wait.until(EC.presence_of_element_located((By.LINK_TEXT, "CASE NUMBER WISE")))
url = link.get_attribute('href')
driver.get(url)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...