셀레늄을 IE 7,8,9와 함께 사용하고 있는데 어떤 이유로 일부 CSS 3 로케이터가 IE 7과 9에서는 작동하지만 8에서는 작동하지 않습니다. 이것은 로케이터에 대한 코드입니다 :셀레늄 : IE8 CSS locators
IE 9
tab = driver.find_element_by_css_selector('ul.tabs:nth-of-type(1) li:nth-of-type(%d)' % x)
IE 7
tab = driver.find_element_by_css_selector('ul.tabs:eq(1) li:nth-child(%d)' % x)
이지만 IE 8에서는 nth-child, or :eq, or nth-of-type
로케이터를 사용하면 요소를 찾을 수 없다는 WebDriverException이 발생합니다.
또한 위의 코드는 IE 8에서 dev 콘솔을 통해 작동하지만 셀레늄에서는 셀렉트가 셀렉트로 Sizzle을 사용하기 때문에 작동하지 않습니다.
IE 8에서이 기능이 작동하지 않는 이유는 누구에게나 알려주시겠습니까? 아니면 가능한 해결 방법을 제안 해주십시오. (나는 ul.tabs:eq(1) > li:nth-child(%d)
과 같은 것들을 시도했다. 즉, 셀렉터 사이에 >
을 삽입했는데 작동하지 않았다.)
IEDriverServer 32 비트와 python 2.23 API를 사용하여 셀렌 서버 2.23을 사용하고있다.
"셀레늄이 셀렉터로 Sizzle을 사용하기 때문일 것입니다."- Selenium1은 Webdriver/Selenium2가 아니라 Sizzle을 사용합니다. Webdriver는 CSS 선택기를 사용합니다. –