【发布时间】:2015-04-09 03:11:14
【问题描述】:
父css选择器的XPath(始终可见)如下:
/html/body/section/div/div[2]
大约 5 秒后(在一些 javascript 之后),它的一个子项将可见。我想通过它的 xpath 选择这个可见的孩子。
/html/body/section/div/div[2]/div[1]
/html/body/section/div/div[2]/div[2]
/html/body/section/div/div[2]/div[3]
/html/body/section/div/div[2]/div[4]
那我想获取有这个xpath+(/h3)的元素
在 html 中是这样的:
<div class="results"><div class="text-center" id="result-error"><h3 class="one">
<div class="results"><div class="text-center" id="result-fail"><h3 class="one">
<div class="results"><div class="text-center" id="result-catchall"><h3 class="one">
<div class="results"><div class="text-center" id="result-success"><h3 class="one">
以上四个之一将可见。
编辑 您的代码的 Python 等效项:
wait = WebDriverWait(browser, 10)
rslts=wait.until(EC.presence_of_all_elements_located(By.CSS_SELECTOR, (".results h3 .one")))
但我收到此错误:
rslts=wait.until(EC.presence_of_all_elements_located(By.CSS_SELECTOR, (".results h3 .one")))
TypeError: __init__() takes exactly 2 arguments (3 given)
我不确定你的 CSS 选择器和它们之间的空格。看起来 present_of_all_elements_located 函数认为有 3 个参数而不是 2 个。
【问题讨论】:
标签: html selenium xpath css-selectors