python - 无法通过文本点击div元素

标签 python html selenium innertext

我正在尝试为我的雇主自动执行一些下载。我将 selenium 与 python 和 chromedriver 一起使用。

我一直无法点击这个 div 元素,它是 javascript 下拉菜单的一部分。

<div class="item " idx="2" style="" title="">N53AC : BABY MILK UP TO 6 MONTHS</div>

通过在 Internet Explorer 中查找 innerText 属性,我已经能够使用 vbscript 单击此按钮。

我已经试过了

elemf = driver.find_elements_by_tag_name("div")

for element in elemf:
    #print(element.get_attribute("innerhtml"))
    if element.get_attribute("innerhtml")=="N53AC : BABY MILK UP TO 6 MONTHS" or element.get_attribute("innertext")=="N53AC : BABY MILK UP TO 6 MONTHS" or element.text=="N53AC : BABY MILK UP TO 6 MONTHS":
        element.click()

有线索吗?我是 html 的新手。

最佳答案

这是您问题的答案:

您的代码中的主要问题是您正在尝试find_elements_by_tag_name("div");,这在当前的 HTML DOM 中会很多。相反,您需要将搜索范围缩小到类似以下内容:

elemf = driver.find_elements_by_xpath("//div[@class='item ']");

现在我们可以进入一个循环并调用 click() 方法,如下所示:

for element in elemf:
    my_attribute = element.get_attribute("innerHTML")
    if my_attribute == "N53AC : BABY MILK UP TO 6 MONTHS"
        element.click()
        break

如果这回答了您的问题,请告诉我。

关于python - 无法通过文本点击div元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45402412/

相关文章:

Python,将迭代函数变成递归函数

javascript - 如何让这个进度条停在我提供的特定值

html - 如何跨指定容器均匀、充分地拉伸(stretch)固定数量的水平导航项

html - 表格单元格 - 宽度 : 100% with table-layout: fixed;

c# - Selenium 测试运行后 GhostDriver 没有退出

java - 查找包含 javascript 的 href 元素

python-3.x - 属性错误 : 'LifoQueue' object has no attribute 'put' selenium webdriver

python - App Engine "ImportError: No module named msvcrt"上的 Django 1.7

python - fileinput.Fileinput .read() 整个文件的函数

python - Python-2.7 的模块在明确安装后未导入