【发布时间】:2018-07-18 01:37:50
【问题描述】:
我曾经问过类似的问题,但我在尝试解析网页时仍然遇到错误。场景是系统导航到https://shop.sprouts.com/shop/flyer 并希望提取与每个类别相关的每个特价商品。目前,当单击一个类别时,我会在右侧看到一个空白屏幕。 我已经尝试了以下两个选项,但我得到了相同的结果。
elementLeftHandSideMenu.Click();
iJavaScriptExecutor.ExecuteScript("arguments[0].click();", elementLeftHandSideMenu);
这是时间问题吗?我做错了什么?
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
using System;
using System.IO;
using System.Linq;
using System.Reflection;
using SeleniumExtras.WaitHelpers;
using System.Threading;
using System.Collections.Generic;
using Newtonsoft.Json;
[TestClass]
public class UnitTest1
{
ChromeDriver driver;
WebDriverWait webDriverWait;
[TestInitialize]
public void Startup()
{
var chromeOptions = new ChromeOptions();
chromeOptions.AddArguments("--proxy-server='direct://'");
chromeOptions.AddArguments("--proxy-bypass-list=*");
chromeOptions.AddArguments("--start-maximized");
var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
ChromeDriverService chromeDriverService = ChromeDriverService.CreateDefaultService(path);
driver = new ChromeDriver(chromeDriverService, chromeOptions);
webDriverWait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
}
[TestCleanup]
public void CleanUp()
{
driver.Quit();
}
[TestMethod]
public void GetSproutsWeeklyAdDetails2()
{
try
{
driver.Navigate().GoToUrl("https://shop.sprouts.com/shop/flyer");
}
catch (TimeoutException timeoutException)
{
driver.Navigate().Refresh();
}
var iJavaScriptExecutor = (IJavaScriptExecutor)driver;
webDriverWait.Until(driver1 => iJavaScriptExecutor.ExecuteScript("return document.readyState").Equals("complete"));
var elementsLeftHandSideMenu = webDriverWait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(
By.XPath("//ul[@class='menu sidenav']/li[@class='child']/a")));
System.Diagnostics.Debug.WriteLine(elementsLeftHandSideMenu.Count);
var items = new List<Item>();
foreach (var elementLeftHandSideMenu in elementsLeftHandSideMenu)
{
Thread.Sleep(2000);
try
{
elementLeftHandSideMenu.Click();
//iJavaScriptExecutor.ExecuteScript("arguments[0].click();", elementLeftHandSideMenu);
}
catch (Exception exception)
{
System.Diagnostics.Debug.WriteLine(exception.ToString());
}
//parsing code here does not work as the RHS shows a blank page
System.Diagnostics.Debug.WriteLine("Exit");
}
}
}
【问题讨论】:
-
有异常吗?
标签: c# .net selenium selenium-webdriver selenium-chromedriver