我尝试使用SelectElementByClassName
使用ChromeDriver访问元素。
driver.FindElementByClassName("ou selected");
元素的类是:ou selected
但是我不能使用这个方法,因为我得到了:
Compound class name not permitted exception
我不可能选择所有这些课程吗?
有可能的解决方法吗?
即使选择CSS,我也会收到另一个错误,上面写着“没有这样的元素”。
该元素存在:
加载需要几毫秒,但仍然添加了Timeout以确保正确加载。不过,我得到了同样的错误。这是代码:
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(2));
driver.FindElementByCssSelector(".ou.selected").SendKeys(OpenQA.Selenium.Keys.Enter);
答案 0 :(得分:5)
在这种情况下使用FindElementByCssSelector
,而不是FindElementByClassName
。正如其所述,ByClassName不支持复合类。这就是您使用CSS选择器匹配所需类的原因。
driver.FindElementByCssSelector(".ou.selected")
看起来你想要选择链接?如果是这样,那么你需要 -
driver.FindElementByCssSelector("span.ou.selected > a")