Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript单击网站上的按钮,并通过xpath和元素包含的特定文本找到该元素?_Javascript_Html_Selenium_Xpath_Element - Fatal编程技术网

如何使用javascript单击网站上的按钮,并通过xpath和元素包含的特定文本找到该元素?

如何使用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

我知道在selenium中,可以通过元素包含的文本找到特定元素。我有一个示例代码:

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中的文本找到许多元素中的一个。你是对的。此外,它的工作,我只是在寻找其他东西,然后循环槽每个跨度元素。但我想,在每件事上循环都不会产生很大的时间差异。不管怎样,我找到了我要找的东西,所以我很高兴。