提问者:小点点

C#Selenium函数获取用户输入并单击包含“ ”的xpath文本?


我正在编写一个函数,它应该接受一个字符串,并单击包含匹配该字符串的文本的html元素。

但是在某些情况下,元素的文本包含特殊字符 ,我的函数无法找到元素。

        public static void ClickOnItem(string itemName)
        {
            IWebElement target = BrowserUtility.FindElement(By.XPath(String.Format("//div[translate(.,'\u00A0','')='{0}']",itemName)));
            TestUtility.ClickElement(target);
        }
<div>Foo&nbsp;Doo&nbsp;Item</div>

共1个答案

匿名用户

您将需要用不间断的空格替换空格。您可以在Windows上使用alt+0160键入不间断空格。警告,在代码编辑器中,这可能看起来与常规空间完全相同,因此代码的可维护性将下降。

string input = "some user input";
string adjustedInput = input.Replace(" ", " "); // replace space with nb-space
IWebElement target = BrowserUtility.FindElement(By.XPath($"//*[text()='{adjustedInput}']"));
            TestUtility.ClickElement(target);