【问题标题】:Python Selenium Read Values from xPath attributesPython Selenium 从 xPath 属性中读取值
【发布时间】:2020-04-13 02:50:54
【问题描述】:

我正在准备一个从时间表中读取值的程序。我正在使用 python 3 和 selenium 使用 Chrome webdriver。

我已经能够使用 .text 方法来捕获前三列(时间条目、类别和总计)中的文本值。但是,对于从第 4 列开始到 to 的输入框,使用相同的方法不起作用。

这是第一行第四列的​​ xpath。

/html/body/form/table/tbody/tr/td/table/tbody/tr[2]/td[2]/table[3]/tbody/tr/td[2]/div/table[1]/tbody/tr/td/table[1]/tbody/tr[1]/td[1]/input

这是第一行第四列的​​html(值为7)

<input name="grdDaysProjects$ctl02$txtPrjCol0" type="text" value="7" maxlength="5" readonly="readonly" id="grdDaysProjects_ctl02_txtPrjCol0" class="GridInputsShort" onblur="GetTotalRow('1','grdComboProjects_ctl02_lblHours',2,6,'grdDaysProjects'); VerticalSum(0,'grdTotal',2,1,0); AntiXSS('grdDaysProjects_ctl02_txtPrjCol0')" data-origvalue="7">

这是第二行第四列的​​html(没有值)

<input name="grdDaysProjects$ctl03$txtPrjCol0" type="text" maxlength="5" readonly="readonly" id="grdDaysProjects_ctl03_txtPrjCol0" class="GridInputsShort" onblur="GetTotalRow('1','grdComboProjects_ctl03_lblHours',3,6,'grdDaysProjects'); VerticalSum(0,'grdTotal',2,1,0); AntiXSS('grdDaysProjects_ctl03_txtPrjCol0')" data-origvalue="">

它应该提取一个文本值 7,而任何空白单元格都应该提取一个零或空值。将 .text 方法与 find_element_by_xpath 方法一起使用只会产生空值。 html 在两个地方都有值,“值”和“数据原值”。当值为 null 时,“value”变量不会出现在 html 中,但“data-origvalue”会出现。关于使用 selenium 从“数据原值”获取价值的任何建议?

【问题讨论】:

  • Xpath with [1]...[3] (etc) are really bad idea
  • 如果您发布相关的 HTML 以便作为解决方案的一部分提供有效的 xpath 将会很好。请注意您已经为我请求的表格 HTML 的唯一输入标记提供了 HTML。
  • @Wonka 您能否建议一个更好的方法或指向另一个线程,我可以检查出一个首选方法?感谢指导,谢谢!
  • @cookiemnstr247 查找项目类、ID 甚至包含文本。你没有发布 html,这里和示例 "//input[contains(@name, 'grdDaysProjects')]"

标签: python html selenium


【解决方案1】:

输入标签具有属性value 尝试使用 element.get_attribute("value") 获取该值

element=driver.find_element_by_xpath("your xpath")
print(element.get_attribute("value"))

【讨论】:

  • 如果这不能解决您的问题,那么您还需要发布表格的 HTML 来诊断问题。
  • 完美,正是我想要的。我刚刚在文档页面中搜索了该方法,并将进一步研究它。谢谢!
猜你喜欢
  • 1970-01-01
  • 2021-11-08
  • 2021-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-14
  • 2012-07-26
  • 1970-01-01
相关资源
最近更新 更多