如何禁用在 Python 中的 Selenium Webdriver 的新选项卡中打开页面?

Kir*_*ran 5 python selenium selenium-webdriver

我正在抓取网站:http : //www.delhidistrictcourts.nic.in/DLCIS-2016-2.html

此页面中有许多链接。用户将点击这些链接中的任何一个(通过 selenium web 驱动程序)。问题是,当用户点击这些链接时,它会在一个新选项卡中打开,因为所有链接都有一个属性(“ _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)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

And*_*son 5

您可以尝试更新 的值@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()
Run Code Online (Sandbox Code Playgroud)

对页面上的所有链接应用相同的方法:

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)
Run Code Online (Sandbox Code Playgroud)

@href链接的摘录和get()它:

link = wait.until(EC.presence_of_element_located((By.LINK_TEXT, "CASE NUMBER WISE")))
url = link.get_attribute('href')
driver.get(url)
Run Code Online (Sandbox Code Playgroud)