Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.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_Selenium_Selenium Webdriver_Web Scraping_Selenium Chromedriver - Fatal编程技术网

Javascript 硒xpath问题

Javascript 硒xpath问题,javascript,selenium,selenium-webdriver,web-scraping,selenium-chromedriver,Javascript,Selenium,Selenium Webdriver,Web Scraping,Selenium Chromedriver,我在使用selenium和xpath时遇到了一个非常奇怪的问题。我有一个页面,呈现25 这个带有alt折叠列表的图像显示在一个中,您的xpath应该更像: let text = await driver.getPageSource(); var count = (text.match(/alt="Expand List"/g) || []).length; let items = await driver.findElements(By.xpath("//a[//img[

我在使用selenium和xpath时遇到了一个非常奇怪的问题。我有一个页面,呈现25
这个带有alt折叠列表的图像显示在一个

中,您的xpath应该更像:

    let text = await driver.getPageSource();
    var count = (text.match(/alt="Expand List"/g) || []).length;
    let items = await driver.findElements(By.xpath("//a[//img[contains(@alt,'Expand List')]]"))
    console.log(count, items.length); //outputs 25, 32
一条斜线表示它是父项//a的子项

我强烈建议使用brower插件来测试XPath。我几乎每天都使用的一种是ChroPath。您还可以在devtools控制台中测试XPath,方法如下

//a/img[contains(@alt,'Expand List')]
将给出如下输出:


您可以尝试使用像//a//img这样的XPATH吗[contains@alt,'Expand List']?我认为您的xpath没有正确定义谓词。我认为它是找到任何一个A,然后为谓词//img返回true[contains@alt,“Expand List”]由于使用了//,因此始终为真。试试上面评论中的例子,我认为它更接近你的意图。
$x('//a/img[contains(@alt,'Expand List')]')