我有以下脚本,它基本上从"数据"中提取每个值。传递数组并返回json值。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
chrome_path=r"C:\Users\Priyanshu\Downloads\Compressed\chromedriver_win32\chromedriver.exe"
driver=webdriver.Chrome(chrome_path)
driver.get("https://www.flipkart.com/?")
search = driver.find_element_by_name('q')
search.send_keys("laptop")
search.send_keys(Keys.RETURN)
driver.find_element_by_xpath(""" //*[@id="container"]/div/div[2]/div[2]/div/div[2]/div[2]/div/section/ul/li[2]""").click()
所以在这种情况下"数据"在我的控制台日志中返回:
Array [Object,Object]
其中包含以下对象 - >价值等,在某些情况下,我的到期"日期值是空白,但仍然可以在Firefox和Chrome中正常工作。
在我的情况下问题似乎完全与IE 11有关....我一直在IE中遇到以下错误,它与" push"以某种方式附加到我的阵列。我不知道这是一个语法错误还是我尝试追加到我的阵列的方式,但显然我做错了。我的目的只是以json格式返回第二个数组,因此可能是一种更简单的方法。
SCRIPT1003:预期':'
答案 0 :(得分:2)
评论提供了IE错误,这是一个可以在IE和Chrome上运行的示例代码:
function parsejson(data) {
var temp2 = []; // this syntax might be prefered to create a new array
if (data) {
temp2 = data.map(function(element) {
return {
vproductid: element.productid,
vproductname: element.product_name,
vexpirydt: element.expiry
};
});
}
console.log(temp2);
return temp2;
}
var sampleData = [{
productid: 1,
product_name: 'a',
expiry: 'Today',
someThingelse: '',
}, {
productid: 2,
product_name: 'b',
expiry: 'Today',
someThingelse: '',
}, {
productid: 3,
product_name: 'c',
expiry: 'Today',
someThingelse: '',
}];
parsejson(sampleData);