【问题标题】:CSS selector works in Firefox but not in IECSS 选择器在 Firefox 中有效,但在 IE 中无效
【发布时间】:2010-12-27 10:34:51
【问题描述】:

有谁知道为什么这个 CSS 选择器在 Firefox 中有效,但在 IE7 或 IE8 中无效?

css=div[style~='visible;'] div[class~='x-combo-list-item']:contains('Test Job')

我在 Selenium 测试中使用它来查找页面上的元素。

编辑: :contains 选择器不是问题。我在测试的其他地方使用它,它适用于 IE6、7 和 8。

【问题讨论】:

  • 不,只是一个普通的 CSS 选择器。
  • 您使用的是哪个版本的“IE”?我不相信 IE6/7 支持那些“伪选择器”。
  • 不,它是一个硒“定位器”。可能使用 CSS 来避免 XPath 的缓慢...

标签: css firefox selenium internet-explorer


【解决方案1】:

我知道 Selenium 尝试在其选择器引擎中为 所有 浏览器支持所有 CSS3。可能是IE不支持多级属性选择器。

你可能会被这个 XPath“定位器”卡住

或者,您可以尝试:

div[style~='visible'] .x-combo-list-item:contains('Test Job')

【讨论】:

  • 我会调查的,谢谢。你知道 Xpath 是否支持类似于“~=”的东西吗?
  • 是的,//div@style[contains('text')//div@class[contains('..')]
  • 啊,真希望我能编辑 cmets。最后一个应该是: //div[contains(@style,'text')]...
  • 警告的话,当您使用“//”查询时,XPath 在 IE 上运行缓慢。
  • 是的......我确实经历过缓慢,这就是我尽可能使用 CSS 选择器的原因。
【解决方案2】:

可能是因为 :contains 伪类是 CSS3 添加的,而您使用的任何版本的 IE(您没有指定)可能不支持 :contains。

http://www.w3.org/TR/2001/CR-css3-selectors-20011113/#selectors

【讨论】:

  • 感谢您的建议,但我在很多不同的地方都使用了 :contains,而且 IE7 和 IE8 都支持它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-24
  • 2011-02-18
  • 2011-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多