Chrome에서 실행할 때 원하는 값을 완벽하게 반환하는 특정 HTML 요소의 높이를 가져 오는 데 사용하는 특정 XPATH 쿼리가 있습니다. XPath 도우미 플러그인을 통해. 나는 로봇 프레임 워크브라우저에서 xpath query succesfull을 통해 속성을 가져 오지만 로봇 프레임 워크에서는 그렇지 않습니다.
Get Element Attribute//*/div[@class="BarChart"]/*[name()="svg"]/*[name()="svg"]/*[name()="g"]/*[name()="rect" and @class="bar bar1"]/@height
에서 가져 오기 요소 속성 - 키워드를 통해 동일한 쿼리를 사용할 때
//*/div[@class="BarChart"]/*[name()="svg"]/*[name()="svg"]/*[name()="g"]/*[name()="rect" and @class="bar bar1"]/@height
은 ... 나는이 XPATH에 대한 InvalidSelectorException을 얻었다.
InvalidSelectorException: Message: u'invalid selector: Unable to locate an
element with the xpath expression `//*/div[@class="BarChart"]/*[name()="svg"]/*
[name()="svg"]/*[name()="g"]/*[name()="rect" and @class="bar bar1"]/`
그래서 Robot Framework 나 Selenium은 @ 기호와 그 뒤에 오는 모든 것을 제거했습니다. 나는 그것이 탈출 - 문제라고 생각하고 @height 앞에 슬래시를 추가하고 제거했지만 성공하지 못했습니다. 또한이 쿼리의 결과를 string() - 명령에 캡슐화하려고 시도했지만 실패했습니다.
누군가 내 XPATH 쿼리가 손상되는 것을 방지하기위한 아이디어가 있습니까?
: 간단한 솔루션은 슬래쉬, 그래서 당신의 XPath는이 같이 것이라는 점을 드롭하는 것입니다
이 그 작업을 수행합니다 (이 글을 쓰는 ... 현재) 정확한 코드 안녕하세요 JLRishe, 정확히 내가 찾던 해결책이었습니다. Robot Framework에서 XPath 쿼리에이 접두사를 알았지 만 배치 할 필요가없는 경우가 많습니다. 대부분의 XPATH는 내가 사용하는 쿼리가 없이는 정상적으로 작동하지만,이 쿼리는 필요합니다. 어쨌든, 당신의 도움을 주셔서 감사합니다 – Tornado
그냥'@'이전에'/'를 제거하면 원래 시도가 효과가있을 수 있습니다. 당신이 가진 오류 메시지는 그것도 역시 (그것은'@'before가'@ height'가 당신의 원소 선택자의 일부라고 생각합니다) 것을 제안하는 것 같습니다. – JLRishe
아니, 그게 작동하지 않았다, 그건 내가 시도한 것들 중 하나였다. 게다가, 나는이/-sign을 사용한다고 말한 몇 가지 예를 온라인에서 발견했다. – Tornado