【发布时间】:2021-12-30 15:59:00
【问题描述】:
在我花太多时间研究这个之前,我会在这里问这个问题,以确保我正在尝试做的事情是可能的。
背景:我想帮助一位卡车司机朋友。他使用一个调度网站来选择他的货物。该网站列出了所有可用的列表,但不允许他按邮政编码过滤。基本上,他必须手动滚动这个大列表来寻找交货。如果他在他的邮政编码上或周围找到什么东西,他会选择它。
问题:如果匹配,是否可以自动滚动网站、按邮政编码过滤并选择一个项目?
没有可用的 API 可以让我以编程方式执行此操作。所以我虽然可能有一种方法可以使用 JavaScript 滚动网站并根据特定字段(邮政编码)进行选择。
这甚至可能吗?有没有更好的方法来解决这个问题?
回答问题:Selenium Webdriver 可用于此。
var driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://en.wikipedia.org/wiki/List_of_most_visited_websites");
IJavaScriptExecutor js = driver as IJavaScriptExecutor;
// scroll by element - find element by link text and store in variable "Element"
WebElement Element = (WebElement)driver.FindElement(By.LinkText("United States"));
js.ExecuteScript("arguments[0].scrollIntoView();", Element);
System.Threading.Thread.Sleep(5000);
Console.Read();
【问题讨论】:
-
所有发布的只是程序描述,但这并不能告诉我们您遇到了什么问题。你尝试过什么,遇到过什么烦恼?请edit您的帖子包含valid question,我们可以回答。提醒:确保您知道on-topic 是什么;要求我们为您编写程序、建议和外部链接都是题外话。
-
这取决于网站的构建方式。一般来说,可以使用 JavaScript 设置输入字段的值并滚动页面。
-
有可能,分享你尝试过的网站和代码
-
我还没有尝试过任何东西。我只是想知道是否可以自动滚动网站并在找到特定字段值后停止滚动,仅此而已。
-
@rafaelzm2000:见下文。
标签: javascript python c# html selenium