python - 使用 Selenium 的 find 函数检索 aria-label 值
问题描述
我在网站上有一个元素的 xpath,但我正在尝试获取该元素的 aria-label 值。
# NO SUCCESS: print(WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.XPATH, "element_xpath_you_found"))).get_attribute("aria-label"))
# NO SUCCESS: first_rev = browser.find_element(By.xpath, "/html/body/span/g-lightbox/div[2]/div[3]/span/div/div/div/div[2]/div[1]/div/div[2]/div[1]/div[1]/div[3]/div[1]/g-review-stars/span")
first_rev = browser.find_element_by_xpath("/html/body/span/g-lightbox/div[2]/div[3]/span/div/div/div/div[2]/div[1]/div/div[2]/div[1]/div[1]/div[3]/div[1]/g-review-stars/span").click()
aria_label = first_rev.find_element_by_css_selector('span').get_attribute("aria-label")
print(aria_label)
在浏览器上,我检查元素并获取此 html:
<span class="fTKmHE99XE4__star fTKmHE99XE4__star-s" aria-label="Rated 3.0 out of 5," style=""><span style="width:42px"></span></span>
但是,问题可能是该元素位于页面的弹出窗口内吗?页面源不显示弹出窗口中任何元素的任何 html。
解决方案
click()
没有返回值,这意味着它返回None
,这使得first_rev
None
,将它分成两个动作。你也不需要first_rev.find_element
,你实际上得到了它的子元素
first_rev = browser.find_element_by_xpath("/html/body/span/g-lightbox/div[2]/div[3]/span/div/div/div/div[2]/div[1]/div/div[2]/div[1]/div[1]/div[3]/div[1]/g-review-stars/span")
first_rev.click()
aria_label = first_rev.get_attribute("aria-label")
print(aria_label)
推荐阅读
- c# - 无法获取 AWS S3 的 IAM 安全凭证
- reactjs - 反应原生矢量图标名称属性
- amazon-web-services - AWS Glue Job - 将胶水目录表名称作为参数传递
- angular - 指定“resolveJsonModule”:运行 ng-packagr 时为 true
- mysql - 按该人输入次数选择前 10 个列表
- python - 使用 sed 或通过匹配多行来编辑 xml 文件
- python - 2 FlaskForm 中的日期选择器
- python - 熊猫:另一个列元素的条件滚动窗口?
- nginx - 使用 Ingress-NGINX 的 ExternalName 服务的 308 重定向循环
- django - 为什么它显示“类型对象'CourseInstructor'没有属性'对象'”