Javascript 使用jasmine js将网页中的所有链接存储为json数据
我希望将网页中的所有链接存储为json数据,然后使用jasmine js检查它们的有效性。但到目前为止,我没有任何运气,因为我找不到一个方法来做这件事Javascript 使用jasmine js将网页中的所有链接存储为json数据,javascript,json,jasmine,protractor,karma-jasmine,Javascript,Json,Jasmine,Protractor,Karma Jasmine,我希望将网页中的所有链接存储为json数据,然后使用jasmine js检查它们的有效性。但到目前为止,我没有任何运气,因为我找不到一个方法来做这件事 describe('savejson', function() { var map = new Map(); it('save', function(myarg) { browser.ignoreSynchronization = true; browser.driver.get("h
describe('savejson', function()
{
var map = new Map();
it('save', function(myarg)
{
browser.ignoreSynchronization = true;
browser.driver.get("https://www.google.co.in");
browser.driver.findElement(by.xpath("//input[@type='text']")).sendKeys("java");
browser.driver.findElement(by.xpath("//button[@name='btnG']")).click();
map = browser.driver.findElement(by.xpath("//a[@href]"));
console.log(map);
});
});
有没有办法将其存储在地图或任何其他集合中?您只需将所有链接存储在一个数组中,并在需要时使用结果。看看下面的例子
describe('savejson', function()
{
var urlList=[];
it('save', function(myarg)
{
browser.ignoreSynchronization = true;
browser.driver.get("https://www.google.co.in");
browser.driver.findElement(by.xpath("//input[@type='text']")).sendKeys("java");
browser.driver.findElement(by.xpath("//button[@name='btnG']")).click();
urlList = browser.driver.findElements(by.xpath("//a[@href]"));
});
it('Should validate stored links',function(){
urlList.each(function(linkElement,index){
linkElement.click();
browser.sleep(1000);
expect(browser.driver.getCurrentUrl()).toContain('some URL'); // do whatever you need to assert
browser.navigate().back();
browser.sleep(1000);
})
})
});
我认为下面的解决方案应该适合你
describe('savejson', function() {
it('save', function() {
browser.driver.get("https://www.google.co.in");
browser.driver.findElement(by.xpath("//input[@type='text']")).sendKeys("java");
browser.driver.findElement(by.xpath("//button[@name='btnG']")).click();
var linksList = [];
linksList = browser.driver.findElements(by.tagName("a"));
var testDataLInks = ["www.www.com", "sss.sss.sss"];
linksList.each(function(link) {
link.getAttribute('href').then(function(hyperlink) {
console.log(hyperlink);
expect(testDataLInks).toContain(hyperlink);
});
});
});
}))
1) 首先用标记“a”标识元素,并将它们放入列表中
2) 对于每个元素,您都可以使用getAttribute('href')获得超链接
3) 用您拥有的测试数据列表断言超链接。我尝试使用forEach、map,但似乎都不起作用。更新了我的答案!!从行
urlist=browser.driver.findElement(by.xpath(“//a[@href]”)中删除getAttribute()
)
我很抱歉。我们需要使用findelement
intead offindelement
<代码>每个仅适用于阵列。茉莉花规范超时。重置WebDriver控制流。失败:未定义窗口