Web 应用程序中的 Selenium Web 驱动程序获取用户输入
Posted
技术标签:
【中文标题】Web 应用程序中的 Selenium Web 驱动程序获取用户输入【英文标题】:Selenium web driver in a web application get user inputs 【发布时间】:2017-01-13 18:22:37 【问题描述】:我有一个托管在 Web 服务器上的 Web 应用程序,它使用 selenium Web 驱动程序在网站上执行一些操作,并保存该响应以供用户在最后查看。 现在这工作正常,用户上传要搜索的数据,应用程序在服务器上运行,打开 chrome 窗口在网站上导航。
问题是,有一个网站需要用户输入才能继续。有没有办法代替在服务器上打开 chrome 窗口,而是在客户端机器上打开它?在某种程度上,我可以控制这个新页面的流程,等待用户采取行动,然后继续执行自动操作。
任何选项都会有所帮助。
谢谢
【问题讨论】:
作为“上传要搜索的数据”的一部分,您是否还可以在该特定页面上包含他们需要的响应? 【参考方案1】:你可以使用driver.Navigate().GoToUrl("http://url.here")
然后你可以使用类似的东西
WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0, 0, 30));
if (driver.FindElement(By.CssSelector("selector")).Displayed)
wait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(By.CssSelector("selector")));
driver.FindElement(By.CssSelector("selector")).SendKeys("text you want entered");
driver.FindElement(By.CssSelector("selector")).Click(); //There are other properties and methods you can access
【讨论】:
但这将在服务器中运行。我需要的是一种 Web 应用程序在用户机器上打开 Chromedriver 的方式,以便他可以输入一些信息,然后测试从那里继续。 哦,对不起,我的错误。通常 Selenium 用于自动执行任务,而不是期望人工交互。我认为您可能想要做的是添加一个类似于暂停的等待。这将使用户有时间输入信息,然后您在等待释放后处理操作。 是的,我也在寻找一种与人互动的方式。以上是关于Web 应用程序中的 Selenium Web 驱动程序获取用户输入的主要内容,如果未能解决你的问题,请参考以下文章
python 中的 Web Scraping:BS、selenium 和 None 错误
Selenium Web Driver _ 如何识别画布地图中的 Web 元素
浏览器未针对 Intranet 中的 selenium Web 驱动程序启动 [重复]