Я хочу извлечь текст и затем нажать кнопку во всплывающем окне оповещения Google Chrome JavasScript с помощью UiPath.
В частности, у меня возникли проблемы сследующее:
- Что такое селектор для нацеливания на диалог и как вы его нашли?
- Какой селектор нацеливает и извлекает текст из диалогового окна и как вы находитеэто?
- Какой селектор нажимает кнопку OK в диалоговом окне и как вы это находите?
Я знаю, что для веб-автоматизации UiPath рекомендует использовать IE в большинстве случаев, поскольку UiPath может взаимодействовать с ним более «родным» способом, используя его COM-объект браузера.Другие браузеры будут иметь ограничения и могут возникнуть проблемы в случае обновления версии.Однако в некоторых ситуациях невозможно использовать IE, поскольку в моей работе у нас есть соглашение с Google о работе, и большинство наших внутренних сайтов не работают в IE.
Для завершения расширенной сертификации UiPath Level 3(онлайн): Задание 2 - Создание годового отчета, вы должны создать робота для выполнения следующих действий:
- Перейдите к https://acme -test.uipath.com /
- Войдите в систему с именем пользователя и паролем
- Нажмите на различные элементы для навигации по системе
- Взаимодействуйте и извлекайте данные из всплывающих окон JavaScript Alert
Проблемазаключается в том, что UiExplorer не может найти правильный селектор, что затрудняет получение текста из всплывающего окна Google Chrome, поскольку он не отображается так же, как для IE, и не предоставляет атрибут текста (среди прочих).Вот фрагмент сайта acme-test для создания предупреждений, помогающих определить селектор, и вот файл UiPath XAML :
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<html>
<head>
<title>Upload reports</title>
</head>
<body>
<!-- Page Content -->
<div class="container">
<button type="button" class="btn btn-primary" id="buttonUpload">Upload Report</button>
<script type="text/javascript">
jQuery(document).ready(function() {
$('input[type=file]').on('change', prepareUpload);
function prepareUpload(event) {
files = event.target.files;
$('#upload-file-info').html(files[0].name)
}
jQuery('#buttonUpload').click(function(event) {
event.stopPropagation(); // Stop stuff happening
event.preventDefault(); // Totally stop stuff happening
var vTaxID = jQuery('#vendorTaxID').val();
var rYear = jQuery('#reportYear').val();
// If nothing is filled
if (vTaxID == "" || rYear == "") {
alert('Plase fill in the Vendor TaxID and Report Year!');
return;
}
if (typeof files === 'undefined') {
alert('Please select the Report File');
return;
}
// Create a formdata object and add the files
var data = new FormData();
jQuery.each(files, function(key, value) {
data.append(key, value);
});
console.log('...');
jQuery.ajax({
url: "/cmajax.php?cmd=uploadReport&cvTaxID=" + vTaxID + "&crYear=" + rYear,
type: "POST",
data: data,
cache: false,
dataType: 'json',
processData: false, // Don't process the files
contentType: false, // Set content type to false as jQuery will tell the server its a query string request
})
.always(function(msg) {
console.log('done');
if (msg.responseText == 'bad')
alert("Some problems were encountered.");
else {
console.log(msg);
alert('Report was uploaded - confirmation id is ' + msg.responseText);
}
});
})
});
</script>
</div>
</body>
</html>