Selenium Webdriver之点击图像链接

December 09, 2023
测试
测试
测试
测试
4 分钟阅读

访问图片链接

图像链接是Web页面中由图像表示的链接,当点击该图片(链接)时,将导航到另一个窗口或页面。

因为它们是图像,所以我们不能使用By.linkText()By.partialLinkText()方法,因为图像链接基本上没有链接文本。

在这种情况下,我们应该使用任意一种方法:cssSelectorBy.xpath,第一种方法更受欢迎,因为它简单实用。

在下面的示例中,我们将访问Baidu搜索内容之后页面上的Baidu徽标,点击之后将回到百度主页面,在日常工作中很容易遇到这样的情况,一般都是出现产品的Logo或者公司的Logo,点击之后就会返回产品能够主页面或者公司主页面,上面的百度是一个,再比如淘宝网,京东等等,所有的页面都会有Logo图,都可以再点击之后回到主页。

元素以及定位

我们将使用By.cssSelector和元素的“title”属性来访问图像链接。然后我们将验证点击之后是否会跳转到对应的页面上。

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

public class testSelenium {
    public WebDriver driver;

    @BeforeMethod()
    public void beforeTest() {
        ChromeOptions options = new ChromeOptions();
        Map<String, Object> prefs = new HashMap<String, Object>();
        prefs.put("profile.default_content_setting_values.notifications", 2);
        options.setExperimentalOption("prefs", prefs);
        System.setProperty("webdriver.chrome.driver", "Driver/chromedriver.exe");
        driver = new ChromeDriver(options);
        driver.manage().window().maximize();
    }
    @Test()
    public void testBaidu() {
        String url = "https://www.baidu.com/s?&wd=%E7%99%BE%E5%BA%A6";
        driver.get(url);
        WebElement baiduImg;
        baiduImg = driver.findElement(By.xpath("img[title='到百度首页']:nth-child(1)"));
        baiduImg.click();

        if(driver.getTitle().equals("百度一下,你就知道")) {
            System.out.println("已经回到了百度主页!");
        }else {
            System.out.println("并没有回到百度主页!");
        }

        driver.close();
    }
}

运行结果:

运行结果

你学会了吗?

继续阅读

更多来自我们博客的帖子

如何安装 BuddyPress
由 测试 December 17, 2023
经过差不多一年的开发,BuddyPress 这个基于 WordPress Mu 的 SNS 插件正式版终于发布了。BuddyPress...
阅读更多
Filter如何工作
由 测试 December 17, 2023
在 web.xml...
阅读更多
如何理解CGAffineTransform
由 测试 December 17, 2023
CGAffineTransform A structure for holding an affine transformation matrix. ...
阅读更多