当前位置: 首页 > 面试题库 >

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

长孙阳焱
2023-03-14
问题内容

我刚开始使用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”。

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


问题答案:

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

//button[.='xyz']

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



 类似资料:
  • 问题内容: 我的网站上有一个选择控件。我正在使用页面对象与页面进行交互。如果我这样做(在我的课程下的前两行和我的方法中) 它以空指针失败。我也尝试了没有。 现在,如果我在我的方法中执行此操作,则一切正常,然后选择正确的项目 这是该控件的实际网页摘要(已编辑以保护无辜者) 让我说我可以解决我的问题, 但是 我不明白为什么“ 正常 ”路径无法正常工作。 问题答案: 那是因为该类具有以下构造函数: 见J

  • 问题内容: 如果我搜索单个字符串,则效果很好: 但是我可以在下面的示例中有一个 or 语句吗? 问题答案: 在两个函数调用之间说 或使用函数使xpath不区分大小写

  • Jsoup将每个文本保存为textnode,包括元素之间的\r\n内容。我想要选择页面上的所有真实文本,并选择它的父文本以删除该父文本中的每一个文本。 我现在有这个: 它不会删除包含\n的所有textnodes,所以它会尝试删除正文,因为这是第一个包含textnodes的元素。 我只想选择所有带有文本的元素,并做element.parent().children().remove(); 也没有按照

  • 问题内容: 我需要在网页上找到以下元素 我正在用Java为Selenium WebDriver编码。 需要该元素的确切CSS选择器才能与命令一起使用。 选择器还不够好,因为我必须根据不是链接的文本进行搜索,所以我不能使用命令。 问题答案: CSS不允许您执行基于文本的搜索。 xpath 是唯一的选择。

  • 问题内容: 我正在寻找下表的CSS选择器: 是否有任何选择器来匹配所有包含“ male”的TD? 问题答案: 如果我正确阅读了说明书,否。 您可以匹配元素,元素中属性的名称以及元素中命名属性的值。不过,我看不到任何与内容匹配的元素。

  • 问题内容: 我有个问题。我有这样的元素: id = someGenerated的元素Some:Same:0:name id = someGenerated的元素Some:Same:0:surname id = someGenerated的元素Some:Same:1:name id = someGenerated的元素Some:Same:1:surname 我需要CSS选择器来获取名称。问题是我不知