我有以下代码。当我执行此操作时,
但是,当我放置断点并逐行显示时,我看到它单击了Images。那么,在没有断点的情况下执行它有什么问题呢?
我的另一个问题是,一旦进入“图像”屏幕,如何使脚本单击第一个图像?我看到类名是 rg_ic rg_i ,但是我不能使用它,因为它有空格。 ID每次都在变化。那么,如何单击第一个图像?我之所以发表评论,是因为我无法使其正常工作。
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
IWebDriver driver = new FirefoxDriver();
driver.Url = "http://google.com";
var searchBox = driver.FindElement(By.Name("q"));
searchBox.SendKeys("Pluralsight logo");
searchBox.Submit();
var imageLink = driver.FindElement(By.LinkText("Images"));
imageLink.Click();
//var firstImage = driver.FindElements(By.ClassName("rg_ic"))[0];
//firstImage.Click();
}
}
}
答案 0 :(得分:0)
图像ID是恒定的,我使用此图像进行了成功的测试(允许使用的是python,但是语法相似):
driver.get("http://google.com")
search_box = driver.find_element_by_name("q")
search_box.send_keys("Pluralsight logo")
search_box.submit()
time.sleep(4)
first_img = driver.find_element_by_id("dimg_1").click()
您必须提供时间以加载图像。您可以在预期的条件下执行此操作,也可以仅进行明确的等待。希望这可以帮助。