php-casperjs获取内部文本 - php

我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs

我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。

我认为在js中我会

var arr = document.querySelector('label.input__label--above').innerText;

但是我不知道如何从php包装器访问相同的数组?我已经设法用几行代码填写表格并导航到想要的页面,但是访问dom似乎一点都不明显。

我的包装器称为$ casper,所以我一直在使用

$casper->start("google.com") 

举个例子,如果我当时想访问dom,那应该让我进入google页面,最终有人可以告诉我怎么做的innerText吗?

参考方案

通常,这是通过PhantomJS和CasperJS中的evaluate完成的。 php-casperjs确实提供了evaluate函数,但不适用于您的用例,因为$casper->evaluate不会从页面上下文返回任何内容,而是返回对$casper的引用。

这就是拥有这么小的包装纸的代价。它只是缺少CasperJS的很大一部分。您可以按照JavaScript的意图编写CasperJS脚本,并使用exec或其他类似函数从PHP调用它。

但是,您也可以尝试使用通过回调返回$casper的函数扩展textContent(请注意,PhantomJS中不提供innerText)。由于CasperJS具有异步特性,因此必须通过回调来完成。我不完全肯定这是可能的,而无需重写包装器的大部分。

PHP getallheaders替代 - php

我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…

PHP:从函数返回值并直接回显它? - php

这可能是一个愚蠢的问题,但是……的PHPfunction get_info() { $something = "test"; return $something; } html<div class="test"><?php echo get_info(); ?></div> 有没有办…

php:是否有充分的理由引用所有数组键/索引? - php

我正在遍历别人的代码,他们总是避免转义其数组键。例如:$ row_rsCatalogsItems [名称]代替$ row_rsCatalogsItems ['名称']因此,我不断地对自己接触的所有事物进行微小的更改,以应对这些惰性。但是现在我想知道这样做是否有很多好处。我得到它会在默认为字符串之前检查常量(我在处理常量时会讨厌php中的行为,因为即使未定义,…

php fopen相对路径断开-神秘 - php

我知道“必须进行某些更改”,但是我的代码似乎整夜无故中断。我的服务器目录结构是这样的: / /脚本 /审计 /其他事情我在“脚本”文件夹中有一个脚本(假设它被称为“ /scripts/MyScript.php”),该脚本使用curl收集网页中的数据,并将其日期过的副本保存在“审核”文件夹中。要写入审核文件夹,我使用了 $ fh = fopen(“ ./ au…

标头和包含项之间有什么区别,应在何处使用 - php

我对两个词感到困惑header ("Location:homepage_php");include("homepage.php");我猜想标题是在检查密码过程后使用的,关于include,您可以在任何地方使用它。但是我不确定它们之间的实际区别是什么以及应该使用这两个中的哪个位置。 参考方案 标头将用户转发到新页面,因此…