单击<a>.之间具有特定名称的链接的JS.<>标签.我应该使用 window.find(string).click()、
JS thats clicks link with specific name between <a>...<a/> tags. Should i use window.find(string).click(), Xpath or object.innertext?
我正在尝试编写一个JavaScript,该脚本单击页面上的链接,该链接仅在链接标签之间描述特定名称
<a>"Name of product"</a>
这是网页上的代码。
<a href="/shop/category/k3xmhac9o/lvt89rd5q" class="name-link">"Name of product"</a>
链接是随机加扰和生成的,但产品名称可用。我试过了
window.find("Name of product").click()
但它不起作用
我读到这可能有效
driver.findElement(By.xpath("//a[@title = 'Name of product']")).click();
但是我正在通过Applescript运行JavaScript,我不确定我是否可以通过Applescript使用Webdriver。
还有其他方法可以点击链接吗?
我还读到"object.innerText"可能是一个选项
这是实现您正在寻找的内容的简洁方法
var tags = document.querySelectorAll('a.name-link')
for(var i = 0; i < tags.length ; i++) {
if(/Name of product/.test(tags[i].innerHTML)) {
tags[i].click()
}
}
希望这有帮助!
"name-link"是实际的类名(表明页面上会有很多具有该确切名称的类名)还是会反映产品的唯一"名称"? 如果它是唯一的,您可以使用 document.querySelector('.name-link').click()
. 如果它不是唯一的,您是否可以提供更多上下文,例如更可靠的选择元素,然后找到此元素:parentElement.getElementsByClassName[0].click()
或 parentElement.querySelector('.name-link').click()
如果你有标准的 DOM 访问权限,你可以这样做:
var link = Array.prototype.find.call(
document.querySelectorAll("a.name-link"),
function(a) {
if (a.innerHTML.trim() == '"Name of product"') { // Is it really in "?
return true;
}
}
);
if (link) {
link.click();
}
注意:您可能需要在较旧的浏览器上填充Array#find
。
或者不需要垫片Array#find
,实际上:
Array.prototype.some.call(
document.querySelectorAll("a.name-link"),
function(link) {
if (link.innerHTML.trim() == '"Name of product"') { // Is it really in "?
link.click();
return true;
}
}
);
相关文章:
- 正在寻找比$(document).ready慢的$(window).load的替代方案
- 直接下载文件,而不是从window.open(url)
- $window.ga在AngularJS事件中未定义
- 如何将PDF作为二进制文件传递到window.open()
- .Find()仅显示可见元素
- window.onload没有'无法在Android WebView中工作
- window.location替换并传递URL历史记录条目中的变量
- window.on.scroll事件未启动
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- 为什么window.open不打开一个以变量形式给出的链接
- window.location使用jquery mobile实现chrome跳转
- jQuery(this).Pparent().Pparente().Prent().find()在iPad上不起作用
- window.opener.document在ie中不起作用
- window.onpopstate不工作;当我导航回页面时,不会发生任何事情
- window.location.href =“#find” 适用于移动设备,但不适用于 PC.在本地站点上正常(表达式
- 单击.之间具有特定名称的链接的JS.<>标签.我应该使用 window.find(string).click()、
- window.find() in Firefox vs Chrome
- 在使用window.find()搜索字符串的过程中,会出现一个对话框
- 使用window.find()匹配所有出现的项
- 我将如何使用window.find()激活该文本仅一次