【问题标题】:Selenium C# - How to Remove or Replace target=_blank from an anchor tagSelenium C# - 如何从锚标记中删除或替换 target=_blank
【发布时间】:2019-03-08 00:34:03
【问题描述】:

我有以下html代码sn-p:

<p>
  <a href="https://www.google.com" target="_blank" onclick="s_objectID="https://www.google.com/_1";return
    <span class>"ms-rteStyle-external-link-small">
       "Production Efficiency Status"
       ::after
    </span>
   </a>
</p>

点击链接后,它会在新标签页中打开。我想删除 target="_blank" 或将其替换为 target="_self" 以便链接在同一个选项卡上打开。

使用 Selenium (ChromeDriver)、C# 和 JavaScript,我做了以下工作:

IJavaScriptExecutor jsX = (IJavaScriptExecutor)Driver.driver;

var elm = Driver.driver.FindElement(By.CssSelector("#WebPartWPQ5 > div.ms-rtestate-field > div > div > p:nth-child(3) > a > span"));

// jsX.ExecuteScript("arguments[0].setAttribute(\"target\", \"_self\")", elm);
jsX.ExecuteScript("arguments[0].removeAttribute(\"target\")", elm);

elm.Click();

以上代码仍会在新标签页上打开链接。请指出我需要做的更正,以便在同一个选项卡上打开单击的链接。

我使用了以下参考资料:

  1. https://developer.mozilla.org/en-US/docs/Web/API/Element/setAttribute
  2. https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttribute
  3. Selenium - Universal Way to Convert "WebElement" to Javascript or JQuery Object

【问题讨论】:

  • 你能分享一下为什么要删除target="_blank"吗?您尝试自动化手动步骤是什么?
  • 您好,以下是我尝试执行的总体手动步骤:1. 在页面上查找链接元素,2.删除链接元素的目标属性,3.单击链接元素,它在同一个选项卡上打开。

标签: javascript c# selenium dom selenium-webdriver


【解决方案1】:

以下代码将从&lt;a&gt;标签中删除“target”属性:

driver.ExecuteScript("document.getElementsByTagName('a').removeAttribute('target')");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-08
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-21
    相关资源
    最近更新 更多