当前位置: 首页 > 知识库问答 >
问题:

如何禁用打开页面在一个新的选项卡在Selenium Web驱动程序在Python?

令狐献
2023-03-14

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

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

共有1个答案

裴英锐
2023-03-14

可以尝试更新@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并获取()它:

link = wait.until(EC.presence_of_element_located((By.LINK_TEXT, "CASE NUMBER WISE")))
url = link.get_attribute('href')
driver.get(url)
 类似资料:
  • 问题内容: 我试图单击此页面上的元素: 在这一点上,我想单击“现金流量”,“资产负债表”或“季度”。我知道这些按钮已加载,因为我可以使用BeautifulSoup从页面源中提取它们。但是,当我尝试使用Selenium时: 全部返回“无法定位元素”,除了“季度”返回一个元素,但它位于图上方的一个元素而不是我感兴趣的表格上方的一个元素。 我认为这是由于位于错误的iframe中,而我找到了所有ifram

  • 我不熟悉Ruby语言。我想使用selenium web驱动程序使用chrome浏览器。我正在尝试在chrome浏览器中打开新选项卡。但我无法得到。你能检查一下下面的代码吗。如果有什么问题,建议我 输出:chrome中的新选项卡未打开,第二个url也在已使用第一个url打开的同一页面中打开。

  • 在点击网页上的登录按钮时,会打开一个新的选项卡,要求登录,但selenium web驱动程序无法识别元素,在chrome中执行中止

  • 问题内容: 我正在尝试“强制” Safari或IE7 使用新标签 打开新页面。 以编程方式,我的意思是: 问题答案: 您不能直接控制它,因为它是由Internet Explorer用户控制的选项。 使用Window.open用不同的窗口名称打开页面会像一个弹出窗口,一个新的浏览器窗口中打开 或 在新标签页中打开,如果用户配置的浏览器这样做。

  • 当在Selenium IE Web Driver中激发时,它将打开一个新窗口,而不是在新选项卡中打开。 通常在IE浏览器中,它会打开一个新的选项卡,但在Selenium Web Driver中不会。 需要修复。

  • 我是编码新手。以我的知识在已经成功登录。在主页中,当我单击指定的链接时,它会在新选项卡中打开,这是预期的行为。现在,当我尝试点击新打开的选项卡中的元素时,我没有得到这样的元素异常,因为驱动程序实例指向第一个选项卡,而不是第二个选项卡。如何获取新打开的标签页的驱动程序实例。下面是我使用的代码。 //这是基类。 //这是登录测试。 //在新打开的标签中,我需要点击一些元素。这是我正在使用的代码。 请帮