繁体   English   中英

使用Selenium和Python查找具有特定文本的元素

[英]Find element with certain text using Selenium with Python

目前,我正在使用它,它的工作原理。

self.browser.find_element_by_xpath('//a/h4[text()="item I want"]').click()

是否有更好的方式来选择文字? 我觉得代码可读性极大地使用了xpath。

简单的HTML示例,可以是任意数量的元素。 目的是测试添加到数据库中的特定葡萄酒以进行功能测试。

{% extends 'wine/base.html' %}
{% block content %}
    <section id="wine_content">
        <div class="cards">

            {% for wine in wines %}
            <div class="card">
                <a href="/wine/{{ wine.id }}">
                    <h4>{{ wine.name }}</h4>
                    <p>{{ wine.vintage }}</p>
                    <p>{{ wine.description}}</p>
                </a>
            </div>
            {% endfor %}

        </div>
    </section>

{% endblock %}

如果要提高代码可读性,应该看到遵循页面对象模式。

第一步是在具有显式名称的变量中定义定位器:

from selenium.webdriver.common.by import By
item_wine_pinot_noir = (By.XPATH, "//a/h4[text()='%s']" % "Pinneau noir")
browser.find_element(*item_wine_pinot_noir).click()

你可以尝试这个

self.browser.find_element_by_link_text('item I want').click()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM