在连接多个airplay设备后,调节音量就会出现这个反馈机制导致的音量波动问题。
php同时兼容cli和web打印结果输出
使用同一套程序逻辑,为了设置定时任务在cli中执行,需要同时兼容cli和web端的输出。
整合输出
使用一个输出函数接管cli和web的所有的输出
function add_message($message,$color='black'){ if(!defined('STDIN') ) { echo "<script type='text/javascript'>add('$message','$color');</script>"; ob_flush();flush();} if(defined('STDIN') ) { echo( color_console_output(" ".$message." \n",$color) );} }
Selenium Grid的各种超时设置
Selenium Grid里有各种超时,包括slot的和session的以及webdriver的
slot的超时设置
slot属于node下的子节点,一般Selenium Grid会根据cpu核心数量分配对应的slot槽位,每个slot槽位可以同时允许一个session运行。
有时候这个session会因为代码异常中断没有触发session销毁机制,导致session长期占用slot槽位,当所有slot槽位都满了以后,这个node的后续请求只能积压在queue中,导致node被阻塞。
为了解决这个问题,在grid的config文件中可以设置session-timeout来释放超时的slot槽位
[node] #Let X be the session-timeout in seconds. The Node will automatically kill a session that has not had any activity in the last X seconds. This will release the slot for other tests. session-timeout = 1
如何用单行正则表达式匹配多行文本
如何用正则表达式匹配多行文本
有时候抓取到的目标元素因为排版不正规会出现多行文本的情况,由于多行文本在打印log时会被强制降级为string,所以单从log是看不出来的,有时候还得去查原页面的dom才能发现多行文本。为了避免这种情况,可以使用标记始终将多行文本当作单行文本来匹配。
匹配目标
Download 百度云 链接: https://pan.baidu.com/s/1mi1XKgg 密码: i1ki
解决使用php-webdriver API时因为某个元素未加载完导致程序中断
解决因为某个元素未加载完毕导致程序中断
由于远程浏览器延迟或等待页面加载等原因,会导致因为找不到元素而使程序异常中断。在php-webdriver里针对这个问题有一个解决方案:Facebook\WebDriver\WebDriverWait
如何使用
use Facebook\WebDriver\WebDriver; use Facebook\WebDriver\WebDriverBy; use Facebook\WebDriver\WebDriverWait; use Facebook\WebDriver\WebDriverExpectedCondition; $wait = new WebDriverWait($driver, 10); $wait_res = $wait->until(WebDriverExpectedCondition::presenceOfAllElementsLocatedBy(WebDriverBy::partialLinkText('pan.baidu.com')));