Можете ли вы удалить "." из вашего xpath, потому что остальная часть кода выглядит нормально для меня, поэтому логин будет таким
// LOGIN
m1.findElement(By.xpath("//input[@id='userEmailID']")).sendKeys("jbg@autods.com.au");
m1.findElement(By.xpath("//input[@name='userPassword']")).sendKeys("adinjbg");
m1.findElement(By.xpath("//input[@type='submit']")).click();
Вызвать программу следующим образом:
(cd /c; /a/helloworld)
Скобки вызывают субоболочка, которая будет порождена. Эта под-оболочка затем изменяет свой рабочий каталог на / c
, затем выполняет helloworld
из / a
. После выхода из программы суб-оболочка завершает работу, возвращая вас к приглашению родительской оболочки в каталоге, из которого вы начали.
Обработка ошибок: Чтобы избежать запуска программы без изменения каталога, например, когда с ошибкой / с
,
(cd /c && exec /a/helloworld)
[Спасибо Джошу и Джулиано за советы по улучшению этого ответа!]
Аналогично ответу Дэвида Шмитта , а также предложению Джоша, но он не оставляет запущенный процесс оболочки:
(cd /c && exec /a/helloworld)
Этот способ больше похож на обычный запускать команды на оболочке. Чтобы увидеть практическое отличие, вы должны запустить ps ef
из другой оболочки с каждым решением.
Я всегда думаю, что инструменты UNIX должны быть написаны как фильтры, читать ввод из stdin и записывать вывод в stdout. Если возможно, вы можете изменить двоичный файл helloworld, чтобы записать содержимое текстового файла в стандартный вывод, а не в конкретный файл. Таким образом, вы можете использовать оболочку для записи вашего файла в любом месте.
$ cd ~ / b
$ ~ / a / helloworld> ~ / c / helloworld.txt
Один из способов сделать это - создать скрипт оболочки-оболочки.
Скрипт оболочки изменил бы текущий каталог на / c, а затем запустил / a / helloworld. После выхода из сценария оболочки текущий каталог возвращается к /b.
Here пример сценария оболочки bash:
#!/bin/bash
cd /c
/a/helloworld
Если вы всегда хотите, чтобы он шел в / C, используйте абсолютный путь при записи файла.
Если вы хотите выполнить это внутри вашей программы, я бы сделал что-то вроде:
#include <unistd.h>
int main()
{
if(chdir("/c") < 0 )
{
printf("Failed\n");
return -1 ;
}
// rest of your program...
}