如何使用javascript单击网站上的按钮,并通过xpath和元素包含的特定文本找到该元素?
我知道在selenium中,可以通过元素包含的文本找到特定元素。我有一个示例代码:如何使用javascript单击网站上的按钮,并通过xpath和元素包含的特定文本找到该元素?,javascript,html,selenium,xpath,element,Javascript,Html,Selenium,Xpath,Element,我知道在selenium中,可以通过元素包含的文本找到特定元素。我有一个示例代码: the_element = browser.find_element_by_xpath("//span[contains(.,TEXT)]") 现在,仅使用javascript就可以做到这一点吗?javascript中有通过选择器查找元素的方法,但通过元素包含的特定文本查找元素是否有效 我正在使用的元素是: <span class="_7Cm1F9 ka2E9k uMhVZi
the_element = browser.find_element_by_xpath("//span[contains(.,TEXT)]")
现在,仅使用javascript就可以做到这一点吗?javascript中有通过选择器查找元素的方法,但通过元素包含的特定文本查找元素是否有效
我正在使用的元素是:
<span class="_7Cm1F9 ka2E9k uMhVZi dgII7d z-oVg8 pVrzNP">28</span>
28
我想通过元素包含的数字(28)来查找元素
如果有人知道如何做到这一点,那就太棒了。只收集
span
元素(或您知道要查看的文档特定部分中的元素)。循环遍历元素并检查它们的textContent
以获取您的值
document.queryselectoral(“span”).forEach(函数(元素){
if(element.textContent.includes(“28”)){
控制台日志(元素);
}
});代码>
21
22
22
23
24
25
26
27
28
定位元素的方式不会根据语言绑定(语法除外)而改变。这个xpath应该可以工作:
the_elements = browser.find_elements_by_xpath("//span[text()='28']")
for element in the_elements:
// do whatever here
编辑:以下是Javascript中的相同代码:
var elements = driver.findElement(By.xpath("//span[text()='28']"));
for (var e : elements)
{
// Do something
}
只有一个span
中有28
吗?我在这里找到了一个解决方案:所以我可以在Javascript中使用相同的代码?因为它实际上是用PythonOh编写的,所以我扩展了您的python示例。你想让它在JavascriptExecutor中运行吗?如果是,为什么?我想制作一个Javascript,可以在浏览器中执行,可以单击特定的元素/按钮。为什么需要使用Javascript?为什么不能使用Selenium的常规方法来识别元素呢?事实上,我认为我可以使基于Selenium的版本变得非常简单,但问题是,在浏览器中执行它要比Selenium快得多。此外,Selenium get被许多网站阻止,他们正在检测webdriver。感谢您的回答!Javascript应该尽可能的高效,所以我认为这不是适合我的最佳解决方案。但是谢谢你anyways@programming_for_fun这里没有什么天生低效的东西。这就是如何根据JavaScript中的文本找到许多元素中的一个。你是对的。此外,它的工作,我只是在寻找其他东西,然后循环槽每个跨度元素。但我想,在每件事上循环都不会产生很大的时间差异。不管怎样,我找到了我要找的东西,所以我很高兴。