Сокет находится в / tmp. В системе Unix из-за режимов & amp; владельцы в / tmp, это может вызвать некоторые проблемы. Но, пока вы говорите нам, что вы МОЖЕТЕ использовать свою связь mysql нормально, я думаю, это не проблема в вашей системе. Первичная проверка должна состоять в том, чтобы переместить mysql.sock в более нейтральный каталог.
Тот факт, что проблема возникает «случайно» (или не каждый раз), позволяет мне думать, что это может быть проблема с сервером.
iotop
что-то не так, когда вы сталкиваетесь с проблемой? Обновленный ответ Кажется, что ваш оригинальный локатор в порядке, но ваша функция totalAmount
не возвращает правильное значение. Если вы хотите попробовать альтернативный подход к вашему локатору, чтобы получить цену, вы можете попробовать это, но ваш способ должен работать.
let price = element(by.css('.total-amount span')).isDisplayed()
.then(disp => {
return element(by.css('.total-amount span'));
})
.catch(err => {
return element(by.css('.total-amount'));
});
Оригинальный ответ
Вы используете 'ИЛИ' правильно, но ваш локатор не структурирован правильно.
Если мы сломаем этот локатор element(by.css('.total-amount span, .total-amount'));
, мы увидим, что есть два условия. Если первое удовлетворено, то оно будет возвращено. Если первое не удовлетворено, то второе будет возвращено, если оно будет найдено.
Однако, вы никогда не получите 30.50
, так как второе условие вернет сам элемент td
. Если вы хотите получить продажную цену, если она есть, но <s>
, если ее нет, тогда вам нужно будет запустить эту строку
element(by.css('.total-amount s, .total-amount span'))