我有这个测试表:
CREATE TABLE IF NOT EXISTS `test` (
`id` INT(10) AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4;
Run Code Online (Sandbox Code Playgroud)
使用这三个中的任何一个插入
INSERT INTO `test` (`id`) VALUES (NULL);
INSERT INTO `test` (`id`) VALUES (0);
INSERT INTO `test` () VALUES ();
Run Code Online (Sandbox Code Playgroud)
发行
SELECT LAST_INSERT_ID();
Run Code Online (Sandbox Code Playgroud)
但查询总是会导致0.
PHP mysql_insert_id和PDO::lastInsertId()收益也没有结果.
我整整一天都在玩弄它无法让它发挥作用.想法?
$ git describe --tags --long
test-1-g3c31c73
\_ ???
Run Code Online (Sandbox Code Playgroud)
这g3c31c73似乎没有任何意义...... 文档说它是最近提交的缩写对象名称,但它不是HEAD提交哈希,并且find .git/objects -type f | grep g3c31c73什么也没找到.
我正在尝试重写测试中的完整页面以包含本地内容。我试图抓住 html 元素并将其全部替换。我有要为图像添加的 Base64 数据,但我希望看到文本作为开始。
访问本地 HTML 文件不起作用。寻找解决方法。
cy.visit('/')
cy.get('html')
.invoke('attr', 'innerHTML', '<head></head><body><h1>Hello</h1><body>')
Run Code Online (Sandbox Code Playgroud) 我向MySQL服务器发出的每个SQL查询都会创建一个新的(增量)CONNECTION_ID().这在我的本地以及共享远程服务器上都会发生.
这背后的原因LAST_INSERT_ID()和ROW_COUNT()造成0?如何解决这个问题?
学习日期,他们现在给我很多困难.
$london = new DateTime();
$london->setTimestamp(0);
$london->setTimeZone(new DateTimeZone('Europe/London'));
echo $london ->format('d-m-Y H-i-s');
Run Code Online (Sandbox Code Playgroud)
结果:
01-01-1970 01-00-00
Run Code Online (Sandbox Code Playgroud)
UTC +0:00午夜不应该是伦敦吗?例如,纽约正确地返回上一个日期的19:00 UTC -5:00.莫斯科回归01-01-1970 03-00-00再次不正确(UTC +3:00相对于UTC +4:00)
不使用时->setTimestamp,伦敦当前时间渲染正确.
动态代码:http://sandbox.onlinephpfunctions.com/
另外,我当地的时区是Europe/Prague(UTC +1:00).同样经过测试date_default_timezone_set('Europe/London').
我认为我的逻辑有一些错误?
我有一个#container和按钮,它们是这个容器的子代.当我点击容器本身(按钮周围的空白区域)时,我希望它改变它的背景颜色,但是当我点击按钮时我什么也不想发生.
但是,在jquery中选择#container会使点击按钮也会改变bg ...
<div id="container">
<div class="button>
<span class="text">Button 1</span>
</div>
<div class="button>
<span class="text">Button 2</span>
</div>
</div>
$("#container").click(function() {
$('#container').css({background: 'blue'});
});
Run Code Online (Sandbox Code Playgroud)
我尝试过很多东西,似乎没什么用.
上下文:我在第 1 页有一个带有 innerText 的元素,在第 2 页有另一个带有 innerText 的元素。我需要比较第 3 页中的这两个值。所以我需要找到一种方法将这些值保存在全局变量中,以便它们可以稍后使用。
我尝试过的事情:
试验 1:不起作用,因为 page1value 范围仅限于 cy.get()
cy.get('#selector').invoke('text').then(text => {
const page1value = text
})
Run Code Online (Sandbox Code Playgroud)
试验 2:每当我尝试在外部打印值时,它都不起作用,它是未定义的或初始化时使用的值。
it('TC Name', () => {
let page1value,
cy.get('#selector').invoke('text').then(text => {
page1value = text
})
cy.log(page1value) //comes as undefined
})
Run Code Online (Sandbox Code Playgroud)
试验 3:使用 .as() 以及它的到来是未定义的。
let page1value;
cy.get('#selector').invoke('text').as('page1value');
cy.log(page1value) //comes as undefined
Run Code Online (Sandbox Code Playgroud)
如果有人能告诉我我哪里做错了,那就太好了。
javascript global-variables ui-automation e2e-testing cypress
例如,如果我给出完整的类名:title-text-panel-container class-about-benefits > ulcypress 无法识别该元素并抛出以下错误 C ypressError: Timed out retrying: Expected to find element: '.title-text-panel-container class-about-benefits > ul' ,但一直没有找到。为什么 cypress 无法识别我们是否full class name在测试中屈服?但它通过了测试,因为我们按照测试 2 给出了类名。
测试 1: 失败
cy.get('.title-text-panel-container class-about-benefits > ul').find('li').its('length').should('be.gte', 1);
Run Code Online (Sandbox Code Playgroud)
测试:2次通过
cy.get('.title-text-panel-container > ul').find('li').its('length').should('be.gte', 1);
Run Code Online (Sandbox Code Playgroud)
我是赛普拉斯的新手。避免将选择器/定位器硬编码到每个规范中的最佳方法是什么。在其他框架中,我们会创建一个包含所有选择器的配置文件,并让规范引用它。
场景:我可能在多个规范中使用了一个选择器。如果选择器更改,我不想在每个规范中更改它。我宁愿只在一个位置更改它。
cypress ×4
database ×2
mysql ×2
sql ×2
e2e-testing ×1
git ×1
git-describe ×1
git-hash ×1
javascript ×1
jquery ×1
php ×1
phpmyadmin ×1
timestamp ×1
timezone ×1