基本上,我创建了一个向搜索引擎发送查询的程序。从搜索结果中,它将选择一个随机链接点击。这有效。现在,我已经设置了3秒的超时等待。如果页面加载时间超过3秒,我想使用try / except块并捕获错误/异常,然后返回上一页。
我遇到了一些问题。我已经尝试了多种方法,但在当前的“除了超时异常”之外我仍然遇到第二次超时错误。状态。
以下是我最近尝试的代码:
var checkOptions = function ()
{
// here check the options that you want to be disabled based on your value sum
$("select.options option").each(function () {
// stuff
// $(this).prop("disabled", true);
});
};
$("select.options").change(function () {
$("select.options option[value='" + $(this).data('index') + "']").prop('disabled', false);
$(this).data('index', this.value);
$("select.options option[value='" + this.value + "']:not([value=''])").prop('disabled', true);
$(this).find("option[value='" + this.value + "']:not([value=''])").prop('disabled', false);
checkOptions();
});
checkOptions();
当尝试使用浏览器执行任何操作时,这会引发第二次超时。对于“返回window.stop'我试过了:
var sum = 0;
var options = [
{
id: 1,
text: "Tip 1",
value: 10
},
{
id: 2,
text: "Tip 2",
value: 20
},
{
id: 3,
text: "Tip 3",
value: 30
},
{
id: 4,
text: "Tip 4",
value: 40
},
{
id: 5,
text: "Tip 5",
value: 50
}
];
var onSelect = function ()
{
var id = parseInt(this.value);
disableOption(id);
sum += options.find(function(item)
{
if (item.id == id)
{
return item;
}
}).value;
$(".sum").html(sum);
// Disable the select
$(this).attr("disabled", true);
// Do the move
createSelect();
};
var disableOption = function (id)
{
options = options.map(function (item)
{
if (item.id == id)
{
item.disabled = true;
}
return item;
});
};
var createOptions = function (select)
{
var newOptions = [];
for (var i = 0; i < options.length; i++)
{
var item = options[i];
// here you can check what options should be in based on sum
if ((sum + item.value) <= 100)
{
// Add item to available options
newOptions.push(item);
}
// OR disable the item
// {
// item.disabled = true
// newOptions.push(item);
// }
}
for (var i = 0; i < newOptions.length; i++)
{
var optionData = newOptions[i];
var option = $("<option></option>");
$(option).attr("value", optionData.id);
$(option).html(optionData.text);
if (optionData.disabled)
{
$(option).attr("disabled", true);
}
$(select).append(option);
}
return newOptions.length > 0;
};
var createSelect = function ()
{
var select = $("<select></select>");
var hasOptions = createOptions(select);
$(select).change(onSelect);
// Do not create if there is no options to be displayed
if (hasOptions)
{
$(".options").append(select);
}
};
createSelect();
// HTML
// <div class="options"></div>
我还尝试了browser = webdriver.Chrome()
browser.set_page_load_timeout(30) # Set to 2 seconds to raise timeoutexception
browser.get('http://bing.com')
time.sleep(2)
try:
browser.set_page_load_timeout(2) #Set load to 2 sec to raise exception
browser.get('http://amazon.com')
print('Successfully opened page.')
except TimeoutException:
print('Timeout Exception occurred.')
browser.set_page_load_timeout(30) # Set to normal load timeout
time.sleep(1)
browser.execute_script('return window.stop')
print('Browser loading stopped.')
time.sleep(1)
browser.execute_script('window.history.go(-1)')
print('Browser successfully went back to the previous page.')
方法返回浏览器。我在这里不知所措。有人有解决方法吗?
如果您需要其他信息,请与我们联系。我在这里做了一些示例代码测试,然后转到Bing然后直接到亚马逊。