以编程方式查找网页中的一段文本的字体属性

时间:2016-02-15 12:54:24

标签: php xpath selenium-webdriver webdriver html-parsing

我在网页中有一个特定的关键字(可显示,而不是属性的一部分),我需要知道其他属性的字体样式,字体颜色和背景颜色。我使用的是php,我拥有的三个选项是: -

  1. 查找关键字所在元素的层次结构 然后结合内联样式,各种CSS文件等太多的工作 并且感觉就像重新发明轮子一样。
  2. 通过xpath递归查找关键字,然后使用 webdriver找到属性。
  3. 使用网络驱动程序使用内置函数直接在文本中查找关键字,然后找到属性。
  4. 有人可以提供有关替代品的建议/优点/缺点吗?如果您的选择是(3),您希望使用哪个webdriver以及您将使用哪个函数?

1 个答案:

答案 0 :(得分:1)

基本上应该是策略,

  1. 使用xpath contains查找所有可显示的元素'在文中
  2. 并访问每个元素
  3. 的css属性

    我不知道php,但在Java中你可以

    List<WebElement> elements = driver.findElements(By.xpath("//*[text()[contains(.,'displayable')]]"));
    for(WebElement element : elements) {
      System.out.println(element.getCssValue("font-style"));
    }
    

    php代码应该是类似下面的内容,但我无法保证,因为我不太了解它。参考here

    $elements = $driver->findElements(WebDriverBy::xpath("//*[text()[contains(.,'displayable')]]"));
    foreach($elements as $e)
    {
        echo $e->getCSSValue('font-style');
    }
    

    如果您有兴趣了解此xpath的工作原理,请查看一个很棒的答案here