javascript - 我应该选择什么元素值才能单击该元素

标签 javascript python selenium-chromedriver

这是 html 代码片段:

<div autoid="" buttondecorator="" class="ideas-card _ngcontent-zty-5 collapsed-card" aria-label="Find new keywords" aria-expanded="false" aria-describedby="F7C56A74-5C67-4B02-B3E2-AFD3DFBA318B--0" aria-hidden="false" id="F49F12F8-6C5C-4567-AAD9-6C76A52FD801--0" tabindex="0" role="button" aria-disabled="false"></div>

从上面的代码片段来看,它是一个卡片元素,并且使用 selenium python 我尝试单击该元素。

我的代码是:

find_new = browser.find_element_by_xpath("//div[@aria-label='Find new keywords']").click()

还有其他方法可以选择该元素吗?

我收到的错误消息是:

element not interactable
  (Session info: chrome=74.0.3729.169)
  (Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Windows NT 10.0.16299 x86_64)

最佳答案

您可能需要等待该元素变得可点击,然后再单击它。使用 WebDriverWait 和预期条件:

from selenium.webdriver.support import expected_conditions

find_new = WebDriverWait(driver, 20).until(
 expected_conditions.presence_of_element_located((By.XPATH, "//div[@aria-label='Find new keywords']")).click()

您可以尝试的另一个技巧是使用 JavaScript Executor:

find_new = browser.find_element_by_xpath("//div[@aria-label='Find new keywords']")
browser.execute_script("arguments[0].click();", find_new)

关于javascript - 我应该选择什么元素值才能单击该元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56354318/

相关文章:

python - 单击 Selenium 中的链接后让 Firefox 等待新页面加载?

python - 如何使用 Selenium 向 ChromeDriver 提交 HTTP 身份验证(Flask BASIC Auth)

javascript - 我如何使用 JavaScript 将 "ı"字符转换为单词内的 "I"?

javascript - MVC.JQuery.DataTables - 排序不起作用

python - 当频率小于 3 时,如何进行列式计数和更改值?

python - 为 Django 用户定义 "remaining time off"的正确方法

python - 您正在使用不受支持的命令行标志 : --ignore-certificate-errors. 稳定性和安全性将受到影响

javascript - 当我更新另一个作用域变量时,作用域变量会自动更新

javascript - 函数可以在正确的情况下自动调用回调或返回 promise 吗?

python - 我可以将计数器反转为没有倍数的列表列表吗?