Size: a a a

QA — Автоматизация

2020 August 03

А

Алексей in QA — Автоматизация
Владимир Bubliki228 R15
Спасибо, оно действительно работает. Также получилось организовать еще и с помощью этого способа:
#from selenium.webdriver.common.keys import Keys
#driver.send_keys(Keys.ENTER)
А теперь вбейте в гугл скроллинг
источник

А

Алексей in QA — Автоматизация
Вы удивитесь, но там вагон ссылок на то, как дрскроллить до нужного элемента
источник

SO

Samvel Osipyan in QA — Автоматизация
Владимир Bubliki228 R15
Во-первых, как скролить автоматически, во-вторых, как искать одновременно с этим?
вписываешь свою команду скролла, и пихаешь его в for где скроллишь страницу, а в for можешь либо if либо готовую функцию юзать,  чмотря что делаешь
источник

SO

Samvel Osipyan in QA — Автоматизация
я вот так сделал к примеру
источник

И

Игорь in QA — Автоматизация
Нужен совет питониста по сравнению 2х json, в которых разное кол-во ключей и значения в виде массивов
источник

D

Dement in QA — Автоматизация
Всем привет. Подскажите хороший туториа по Ruby + Selenium. Проект у нас на Руби.
источник

LY

Lev Yarushin in QA — Автоматизация
Dement
Всем привет. Подскажите хороший туториа по Ruby + Selenium. Проект у нас на Руби.
источник
2020 August 04

МЁ

Мюсля 🙈 Ёшшик... in QA — Автоматизация
Dement
Всем привет. Подскажите хороший туториа по Ruby + Selenium. Проект у нас на Руби.
Если проект на руби это не значит что селениум должен быть на руби
источник

a

alcoscist in QA — Автоматизация
Dement
Всем привет. Подскажите хороший туториа по Ruby + Selenium. Проект у нас на Руби.
Rspec + watir
источник

BB

Bond Bond in QA — Автоматизация
Владимир Bubliki228 R15
Товарищи, есть проблема того, что selenium python не находит элемент (по xpath\имени) из-за того, что он находится ниже по странице (в середине страницы). Пробовал решать ее, изменяя масштаб страницы. Но это почему-то не помогает, кажется, что оно загружает страницу для масштаба 100%. Я долго боролся с изменением масштаба, искал команды, но даже если без команд вручную изменять масштаб, он изменяется при заходе на страницу и такое ощущение, что элементы загружаются под 100%ый масштаб и он все равно не находит их. Что можете предложить?
Есть также вариант как-то автоматически прокручивать страницу, ища нужные элементы, но я не знаю, как это организовать.
Не знаю как в пайтоне но в джава можно юзать команду driver.movetoElement(locator) . Находите самый нижний элемент на странице и юзать этот метод
источник

AR

Alex Radchenko in QA — Автоматизация
Владимир Bubliki228 R15
Товарищи, есть проблема того, что selenium python не находит элемент (по xpath\имени) из-за того, что он находится ниже по странице (в середине страницы). Пробовал решать ее, изменяя масштаб страницы. Но это почему-то не помогает, кажется, что оно загружает страницу для масштаба 100%. Я долго боролся с изменением масштаба, искал команды, но даже если без команд вручную изменять масштаб, он изменяется при заходе на страницу и такое ощущение, что элементы загружаются под 100%ый масштаб и он все равно не находит их. Что можете предложить?
Есть также вариант как-то автоматически прокручивать страницу, ища нужные элементы, но я не знаю, как это организовать.
driver.find_element_by_tag_name('html').send_keys(Keys.END)
или попробуй Keys.DOWN
источник

FT

Filipp Terekhov in QA — Автоматизация
Коллеги, а какой аналог в Protractor вот такой конструкции из Java

Map<String, String> quantities = new HashMap();

List<WebElement> listquantities = driver.findElements(By.xpath("//foo"));

for (WebElement line : listquantities) {
           quantities.put(line.findElement(By.xpath("//bar")).getText(), line.findElement(By.xpath("//baz")).getText());
}

return quantities;

Я, конечно, могу сделать

let locations = await element.all(by.xpath("//foo//bar")).getText().then(function (text){return text})
let quantities = await element.all(by.xpath("//foo//baz")).getText().then(function (text){return text})

Но это выглядит некрасиво, потому что by.xpath("//foo") повторяется
источник

OK

Oleksandr Khotemskyi in QA — Автоматизация
Filipp Terekhov
Коллеги, а какой аналог в Protractor вот такой конструкции из Java

Map<String, String> quantities = new HashMap();

List<WebElement> listquantities = driver.findElements(By.xpath("//foo"));

for (WebElement line : listquantities) {
           quantities.put(line.findElement(By.xpath("//bar")).getText(), line.findElement(By.xpath("//baz")).getText());
}

return quantities;

Я, конечно, могу сделать

let locations = await element.all(by.xpath("//foo//bar")).getText().then(function (text){return text})
let quantities = await element.all(by.xpath("//foo//baz")).getText().then(function (text){return text})

Но это выглядит некрасиво, потому что by.xpath("//foo") повторяется
const listquantities = $$(‘foo’);
const quantities = await listquantities.map(async line => {
 return {
   [await line.$(‘bar’).getText()]: await line.$('baz').getText()
 }
})


что-то вроде такого
источник

OK

Oleksandr Khotemskyi in QA — Автоматизация
на выходе у тебя quantities будет массивом обьектов

[
 {‘bar1’: ‘baz1’},
 {‘bar2’: ‘baz2’}
...
]
источник

OK

Oleksandr Khotemskyi in QA — Автоматизация
если массив с обьектам не то - можешь юзнуть что-то из встроенных - Map или Set например -
https://javascript.info/map-set
источник

FT

Filipp Terekhov in QA — Автоматизация
Спасибо, попробую. Я пытался делать что-то вроеде
let inventoryQuantities = await element.all(by.xpath("//foo"));

        (inventoryQuantities).forEach(function (item, index, array) {
           let warehouse = item.element(by.xpath("//bar")).getText().toString()
    let quantity = item.element(by.xpath("//baz")).getText().toString()
});

Но получал в результате [object Object]
источник

OK

Oleksandr Khotemskyi in QA — Автоматизация
Filipp Terekhov
Спасибо, попробую. Я пытался делать что-то вроеде
let inventoryQuantities = await element.all(by.xpath("//foo"));

        (inventoryQuantities).forEach(function (item, index, array) {
           let warehouse = item.element(by.xpath("//bar")).getText().toString()
    let quantity = item.element(by.xpath("//baz")).getText().toString()
});

Но получал в результате [object Object]
такое не сработает -
getText() асинхронный и возвращает Promise
источник

OK

Oleksandr Khotemskyi in QA — Автоматизация
Filipp Terekhov
Спасибо, попробую. Я пытался делать что-то вроеде
let inventoryQuantities = await element.all(by.xpath("//foo"));

        (inventoryQuantities).forEach(function (item, index, array) {
           let warehouse = item.element(by.xpath("//bar")).getText().toString()
    let quantity = item.element(by.xpath("//baz")).getText().toString()
});

Но получал в результате [object Object]
лучше сразу юзай асинк авейты
источник

OK

Oleksandr Khotemskyi in QA — Автоматизация
Filipp Terekhov
Спасибо, попробую. Я пытался делать что-то вроеде
let inventoryQuantities = await element.all(by.xpath("//foo"));

        (inventoryQuantities).forEach(function (item, index, array) {
           let warehouse = item.element(by.xpath("//bar")).getText().toString()
    let quantity = item.element(by.xpath("//baz")).getText().toString()
});

Но получал в результате [object Object]
Вот можешь мою лекцию №7 послухать -
https://video.start-it.ua/course/javascript-functional-web-automation-protractorjs-webdriverjs
источник

FT

Filipp Terekhov in QA — Автоматизация
я так и понял, что получаю Promise. Спасибо, гляну
источник