说我想点击https://www.w3schools.com/cssref/css_selectors.asp上的w3schools.com(左上角) 这样的事情......
a[href*="w3schools"]
更具体地说..
div.w3-container.top > a[href*="w3schools"][.w3schools-logo]
类似...... driver.find_elements_by_css_selector("div.w3-container.top > a[href*="w3schools"][.w3schools-logo]")
这似乎不适用于Selenium。
我问的可能吗?使用a[href*="w3schools"]
将大大缩小HREF的CSS选择器范围,而不必求助于页面的任何其他元素。
答案 0 :(得分:0)
从你告诉我的内容来看,你的python中出现了错误而不是CSS中的错误。
这是您当前的代码:
driver.find_elements_by_css_selector("a.w3schools-logo[href*="w3schools"]")
将其更改为:
driver.find_elements_by_css_selector("a.w3schools-logo[href*='w3schools']")
基本上,在CSS中使用单引号('
)。
尝试以下选择器之一:
div.w3-container.top > a[href*='w3schools']
div.w3-container.top > a
div.w3-container.top > a.w3schools-logo
div.w3-container.top > a.w3schools-logo[href*='w3schools']
你的选择器有类似a[href*='w3schools'][.w3schools-logo]
的东西,这只是不正确的CSS。
如果要将类选择器与属性选择器组合,它应如下所示:
a.w3schools-logo[href*='w3schools']
答案 1 :(得分:0)
您的选择器几乎是正确的 - 您只需要用单引号替换双引号:
<Button x:Name="Start">
<Interactivity:Interaction.Behaviors>
<Core:EventTriggerBehavior EventName="Click">
<Media:ControlStoryboardAction Storyboard="{StaticResource BackgroundColorStoryboard}" />
</Core:EventTriggerBehavior>
</Interactivity:Interaction.Behaviors>
</Button>
并在谓词中明确指定href*="w3schools" -> href*='w3schools'
属性节点类型:
class
所以下面应该运作良好:
[.w3schools-logo] -> [class='w3schools-logo']