【问题标题】:Locate element without any name or class using Selenium and Python使用 Selenium 和 Python 定位没有任何名称或类的元素
【发布时间】:2020-11-22 22:35:35
【问题描述】:
我正在使用 Selenium,我想获取“a”标签,以便导航到我的用户配置文件。最好的方法是什么?
这是 HTML:
<div class="parent-cont">
<div class="akd3 dafk4 dfan4">...</div>
<div class="avndkd dakdf">...</div>
<div class="fjkad fdadj dfakees">
<a aria-label="tag" class="oa2 g5iad jhuo" href="/profile.php?id=1792" role="link" tabindex="0">
<div class="dsks dssks">...</div>
<div class="dka dk2 fdakdd">...</div>
</a>
</div>
</div>
【问题讨论】:
标签:
python
selenium
xpath
css-selectors
webdriverwait
【解决方案1】:
要定位元素,您可以使用以下任一Locator Strategies:
理想情况下,要定位您需要为WebDriverWait 诱导visibility_of_element_located() 的元素,您可以使用以下任一Locator Strategies:
-
使用CSS_SELECTOR:
element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "a[aria-label='tag'][href='/profile.php?id=1792']")))
-
使用XPATH:
element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//a[@aria-label='tag' and @href='/profile.php?id=1792']")))
-
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC