【发布时间】:2018-01-04 13:24:16
【问题描述】:
我正在尝试使用通用字符串作为变量来使我的代码更简洁,但是 Selenium WebDriver 不断抛出以下异常:
OpenQA.Selenium.WebDriverTimeoutException InvalidSelectorException:无效选择器:指定了无效或非法的选择器
我认为可以通过字符串插值来完成,如下所示:
string common = "\"[data - test - code ^= 'ABC'] > ";
new WebDriverWait(Driver.Instance, TimeSpan.FromSeconds(2)).Until(ExpectedConditions.ElementIsVisible((By.CssSelector($"{common}td.result__td.result__td--test > img"))));
...但没有快乐。有什么想法吗?
谢谢
【问题讨论】:
-
字符串插值语法正确。尝试查看其结果是否相关:
"[data - test - code ^= 'ABC'] > td.result__td.result__td--test > img" -
这正是我所期望的结果,但我不知道如何检查这个,我不明白为什么 Selenium 抱怨选择器无效
-
您要匹配的是
data - test - code还是data-test-code?只需Console.WriteLine($"{common}td.result__td.result__td--test > img"),看看它是否符合您的预期。
标签: c# selenium selenium-webdriver string-interpolation