이것은 XPath 구문에 대한 질문입니다.SeleniumRC/Perl 동적 XPath 선택기가 작동하지 않습니다.
각 제품 페이지에 여러 제품이있는 사이트에 여러 제품 페이지가 있습니다. 각 제품에는 장바구니에 추가 버튼에 대한 고유 한 ID가 있습니다. 고유 ID를 모두 반환하려고 노력 중이므로 가방에 몇 가지 제품을 추가 할 수 있습니다. XPath로 검색하는 것이 올바른 해결책 인 것 같습니다. 나는 XPath를 가진 HTML을 쿼리하고 반환하는 다음 코드가 고유 ID의 :
//a[@id!='quickview-link-PROD7029' and img[@alt='Quick Shop']]/@id
올바르게 :
$XPATH_COUNT = $sel->get_xpath_count("//div[\@class='quick-info-link']/a");
@my_array;
$my_array[0] = $sel->get_attribute("//div[\@class='quick-info-link']/a/\@id");
print $my_array[0];
$count = 0;
while($count < $XPATH_COUNT)
{
$arrayCount=0;
$a = "//";
foreach(@my_array)
{
$tmp = "a[\@id!='" . $my_array[$arrayCount] . "' and ";
$b .= $tmp;
$d .= "]";
$arrayCount++;
}
$c = "img[\@alt='Quick Shop']";
$e = $c . $d . "/\@id";
$xpath_query = $a . $b . $e;
$my_array[$count] = $sel->get_attribute($xpath_query);
$count++;
}
이의 첫 번째 실행의 출력은 다음과 같습니다 XPath 쿼리는 quickview-link-PROD6945를 반환합니다. 두 번째 실행이 생산 : ERROR 내 SeleniumRC 터미널 창에서 오류가 발생합니다
//a[@id!='quickview-link-PROD7029' and a[@id!='quickview-link-PROD6945' and img[@alt='Quick Shop']]]/@id
: 요소 [..xpath 쿼리를 ..] 세션을 찾을 수 없습니다.
페이지의 요소에 액세스하기 위해 색인을 사용할 수 있음을 알고 있습니다 (예 : [i]
을 XPath 쿼리 끝에 추가). 그러나 이것은 Selenium에서 저에게 효과가있는 것은 아닙니다.
도움이 될 것입니다. 시간 내 주셔서 감사합니다, 스티브
당신이 원하는 것을 분명하지 않다
은 당신이 정말 원하는 것은 같은 것입니다. 그 '@ id'는 정말로 고유하지 않습니까? 아니면 순 쿠키를 갖고 싶습니까? 이것은 순차적으로 XPath 표현식에 필터를 추가하여이 고유 ID에 대해 "반복"을 시도하는 것 같습니다. 나는 이것이 옳은 길이라고 생각하지 않는다 ... –