javascript - Selenium C# - 如何从锚标记中删除或替换 target=_blank
问题描述
我有以下 html 代码片段:
<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();
上面的代码仍然在新选项卡上打开链接。请指出我需要做的更正,以便在同一个选项卡上打开单击的链接。
我使用了以下参考资料:
解决方案
以下代码将从<a>
标签中删除“目标”属性:
driver.ExecuteScript("document.getElementsByTagName('a').removeAttribute('target')");
推荐阅读
- c++ - 虚幻引擎 4 中的“未找到引擎源代码”错误
- mysql - 类型不匹配给出不同的 WHERE 结果
- java - Java Swing 呈现不同的背景
- c++ - C++如何输出成功的telnet连接
- google-sheets - 如果 Google 表格中的条件问题
- java - java中的dill/pickle等价物,用于序列化java对象以发送到spark udf
- c++ - 如何调试和打印模板别名类型 c++
- javascript - 上传图片到本地文件夹 React JS
- php - 无法完全覆盖 Laravel mail.php 中的回复
- java - Quarkus 开发模式/实时编码是否不适用于 JPMS/Java 模块?