【问题标题】:How to test CSS values in Python using selenium?如何使用 selenium 在 Python 中测试 CSS 值?
【发布时间】:2021-09-06 15:58:45
【问题描述】:

我正在尝试使用 CSS 中的值测试视频尺寸,如下图所示。

下面的 Div 正在使用 CSS。以下是我到目前为止所做的以及我得到的错误。

def test_video_dimensions(browser):

browser.get(url_for("main.index", _external=True) + "video/title1/?video-height=500&video-width=750")

rows = browser.find_elements(
    By.XPATH, "/html/head/style[2]"
)
assert (
    rows[0].find_element(By.XPATH, "/html/head/style[2]").text
    == "CSS Value"
)

对访问 CSS 样式标签的内部并比较其中的值有什么帮助吗?

【问题讨论】:

  • 当你写.text时,它会给你标签之间的文字,对吗?现在什么是 == "CSS Value" ?是不是想获得提到的 web 元素的 css 值?
  • @cruisepandey 我基本上想要的是,页面 Div 适应我给的视频宽度和高度。值可见的唯一位置是在视频维度下的样式标签内。我想将 760 px 的宽度值断言为我给出的值也是 760。
  • 你可以去开发工具 - (按 F12)然后 -> 元素 -> 执行 ctrl +f -> 然后搜索这个 //style[@class= 'vjs-styles-dimensions'] 看看它是否被突出显示。
  • 是的,当我这样做时它确实会突出显示@cruisepandey
  • 我相信有 1/1 条目?

标签: python selenium flask selenium-webdriver pytest


【解决方案1】:

试试下面的代码:

some_value = driver.find_element_by_xpath("//style[2]").get_attribute('innerHTML')
print(some_value)

输出:

.video-dimensions {
        width: 300px;
        height: 168.75px;
      }

      .video-dimensions.vjs-fluid {
        padding-top: 56.25%;
      }

现在,如果您只想获取宽度值,可能下面的代码应该适合您:

some_value = driver.find_element_by_xpath("//style[2]").get_attribute('innerHTML').strip()
arr = some_value.split(":")
ar = arr[1].split(";")
print(ar[0])

some_value = driver.find_element_by_xpath("//style[2]").get_attribute('innerHTML').strip()
arr = some_value.split(":")[1].split(";")[0]
print(arr)

在这种情况下应该打印300px

【讨论】:

  • 我尝试了 Div 标签的第一个选项,如下所示,但仍然出现相同的错误。 ` assert ( browser.find_element(By.XPATH, "/html/body/div[1]").value_of_css_property('video-dimensions') == "Any value" ) ` E AssertionError: assert '' == 'Any价值'
  • 现在不要断言..尝试打印 browser.find_element(By.XPATH, "/html/body/div[1]").value_of_css_property('video-dimensions') 看看你得到了什么
  • 值为空。
  • 你可以试试这个//style[@class= 'vjs-styles-dimensions'] 吗?喜欢browser.find_element(By.XPATH, "//style[@class= 'vjs-styles-dimensions']").value_of_css_property('video-dimensions')
  • 仍然为空。给出一个空值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-08
相关资源
最近更新 更多