Добавление второго элемента в список, кажется, перекрывает первый элемент, который я добавил

Существуют две отличия между формой оболочки и формой exec. Согласно документация , форма exec является предпочтительной формой. Это два отличия:

Форма exec анализируется как массив JSON, что означает, что вы должны использовать двойные кавычки (") вокруг слов, а не одиночных кавычек (').

В отличие от формы оболочки форма exec не вызывает командную оболочку. Это означает, что нормальной обработки оболочки не происходит. Например, CMD ["echo", "$ HOME"] не будет делать замену переменных в $ HOME. Если вы хотите обработать оболочку, то либо используйте форму оболочки, либо выполните оболочку напрямую, например: CMD ["sh", "-c", "echo $ HOME"]. При использовании формы exec и непосредственного выполнения оболочки, как и в случае с формой оболочки, это оболочка, которая выполняет расширение переменной среды, а не докер.

blockquote>

Некоторые дополнительные тонкости здесь являются:

Форма exec позволяет избежать перебора строк оболочки и команд RUN с использованием базового изображения, которое не содержит указанный исполняемый файл оболочки.

В shell form, вы можете использовать \ (обратную косую черту), чтобы продолжить одну инструкцию RUN на следующую строку.

blockquote>

Существует также третья форма для CMD :

CMD ["param1", "param2"] (как параметры по умолчанию для ENTRYPOINT)

blockquote>

Кроме того, форма exec необходима для CMD, если вы используете его как параметры / аргументы для ENTRYPOINT, которые должны быть перезаписаны.

0
задан MangDelfin 28 March 2019 в 00:30
поделиться

1 ответ

Поскольку вы вызвали цикл и хотите получить доступ к элементу через индекс , вам необходимо заменить следующие строки:

thisItem.setName(driver.findElement("//xpathOfName["+i+"]").getText()));
thisItem.setPrice(driver.findElement("//xpathOfPrice["+i+"]").getText()));

на:

[111 ]
0
ответ дан DebanjanB 28 March 2019 в 00:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: