Mac 10.15.7 的 phantomjs,有效元素始终为 getText() 返回空字符串
phantomjs with Mac 10.15.7, valid element always returning empty string for getText()
我有 Mac OS 10.15.7 的 phamtomjs 并启动了一个网站 ( https://www.rupeevest.com/Mutual-Fund-Holdings/100477 )
在调试模式下,我可以看到带有 driver.getPageSource( )
的页面内容以及我想要验证的值,但是当我这样做时
((PhantomJSDriver) driver).findElementById("n_o_f").getText()
这总是 returns 空字符串 " "
这是 PhantomJS 和 MAC OS 的错误吗?
PhantomJS 本身在 2017 年已经停止开发,是否有更好的无头浏览器替代品?
首先建议使用headless ChromeDriver
而不是PhantomJS
.
据我所知,它更稳定,持续受到支持,并且使用得非常广泛。
实际上它是常规的,常用的 ChromeDriver
只是带有 headless
参数设置 On
.
关于您的具体问题,我想您应该使用 ExpectedConditions
,等待该元素的可见性,然后才获取它的文本。
像这样:
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("n_o_f")));
String yourText = driver.findElementById("n_o_f").getText();
我有 Mac OS 10.15.7 的 phamtomjs 并启动了一个网站 ( https://www.rupeevest.com/Mutual-Fund-Holdings/100477 )
在调试模式下,我可以看到带有 driver.getPageSource( )
的页面内容以及我想要验证的值,但是当我这样做时
((PhantomJSDriver) driver).findElementById("n_o_f").getText()
这总是 returns 空字符串 " "
这是 PhantomJS 和 MAC OS 的错误吗?
PhantomJS 本身在 2017 年已经停止开发,是否有更好的无头浏览器替代品?
首先建议使用headless ChromeDriver
而不是PhantomJS
.
据我所知,它更稳定,持续受到支持,并且使用得非常广泛。
实际上它是常规的,常用的 ChromeDriver
只是带有 headless
参数设置 On
.
关于您的具体问题,我想您应该使用 ExpectedConditions
,等待该元素的可见性,然后才获取它的文本。
像这样:
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("n_o_f")));
String yourText = driver.findElementById("n_o_f").getText();