一尘不染

使用Selenium Webdriver通过包含的文本选择元素

selenium

我刚开始使用Selenium Webdriver,就立即遇到了一个问题,涉及要尝试选择/单击的所有按钮,这些按钮都没有ID并共享同一类。

所以我想知道如何通过它们包含的唯一文本来选择它们。

我可能正在考虑使用CSS选择器,但是我不确定如何告诉它寻找特定文本以选择元素。

我目前所拥有的是:

using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenQA.Selenium.Internal;

namespace SeleniumTest1.Methods
{
    public class HomePage
    {

        private readonly IWebDriver _browser;
        public HomePage(IWebDriver browser)
        {
            _browser = browser;
        }

        public IWebElement SearchBox()
        {
            return _browser.FindElement(By.Id("searchBox"));
        }

        public void ImageButton()
        {
            _browser.FindElement(By.CssSelector("a")).Click();
        }

    }
}

到目前为止非常基本。

我有CssSelector的地方,不确定是否要说选择包含文本“ xyz”的“ a”。

我已经尝试过寻找方法,但找不到任何东西,尽管我觉得这一定是一个以前提出的问题,谢谢。


阅读 713

收藏
2020-06-26

共1个答案

一尘不染

如果使用,则相当容易xpath。如果它具有独特的文本,您xpath应该看起来像这样

//button[.='xyz']

所以在这里 ”。” 指向HTML层次结构中的父级,仅查找文本

2020-06-26