Megharaj Yadravi Ответов: 1

Как сосредоточиться на требуемом браузере, передавая переменную браузера при открытии нескольких браузеров?


Я хочу нажать кнопку с определенного веб-сайта, открытого в определенном браузере, моими входными данными будут переменная браузера и имя элемента(например, идентификатор кнопки или класс), как я могу сосредоточиться на точном окне браузера?

Что я уже пробовал:

Я попробовал поискать, но у меня получилось только создать новый процесс

string targetURL = @"http://pedroliska.com";
System.Diagnostics.Process.Start(targetURL);


дайте мне знать, если возникнут какие-нибудь идеи...

F-ES Sitecore

Этот код работает только потому, что вы тестируете на своей локальной машине, поэтому сервер и клиент одинаковы. При развертывании приложения на удаленном сервере происходит этот процесс.Запуск выполняется на сервере, а не на клиенте. Вы не можете запускать задачи на клиенте по очевидным причинам безопасности.

#realJSOP

Может быть, для кого-то это и очевидно...

Richard Deeming

Я знаю, что это распространенная ошибка, но так ли это конечно что ОП пишет АН ASP.NET приложение, а не пытаться автоматизировать браузер из настольного приложения?

Вы знаете, что они говорят о "предположении". :)

F-ES Sitecore

Не на 100% уверен, но на 99% :)

1 Ответов

Рейтинг:
7

OriginalGriff

Код C# работает на сервере, а не на клиенте, и не может заставить какие-либо приложения вообще работать на клиентской машине. Единственный код, который работает на клиенте, - это Javascript, и он также не может напрямую запускать приложение по соображениям безопасности.

Поэтому, когда вы используете процесс.Start, который запускается на сервере и открывает приложение по умолчанию сервера (обычно браузер), чтобы открыть URL-адрес. Вы не можете указать, какой браузер открыт, если установлено более одного, без специального указания процесса, какое приложение, указав его полный путь, и передать URL-адрес в качестве аргумента.
Но даже если вы это сделаете, клиент не сможет увидеть его или каким-либо образом взаимодействовать с открывшимся браузером.

Он "работает" в разработке, потому что клиент и сервер - это одна и та же физическая машина, точно так же, как MessageBox будет "работать" в разработке, но потерпит неудачу в производстве, потому что отображаемое окно или приложение находится за тысячи миль от клиента, которому вы пытаетесь его отобразить!

Все, что вы можете сделать, это добавить href ссылка на URL-адрес страницы, отображаемой браузером, и пусть она откроется в текущем браузере пользователя.