【问题标题】:Compare elements using locators in web table Selenium + Python在 Web 表 Selenium + Python 中使用定位器比较元素
【发布时间】:2020-05-27 11:14:17
【问题描述】:

所以想法是 - 我需要检查“绿色箭头”数字是否与“红色箭头”数字相同。这个数字总是用不同的数字生成。所以我为“红色箭头”创建了一个变量“first_value”,为“绿色箭头”创建了一个“second_value”。一切正常(我认为),但我使用丑陋的 Xpath,所以有人可以帮我让我的 Xpath 更漂亮一点,或者提供另一个定位器,好吗?我不知道我可以使用哪个定位器

first_value = wait.until(EC.visibility_of_element_located((By.XPATH, "/html/body/form/div[4]/div[2]/div/table/tbody/tr[4]/td/div[1]/div[2]/div[2]/table/tbody/tr[5]/td/table/tbody/tr[2]/td/div/div/table/tbody/tr[2]/td[7]"))).text

second_value = wait.until(EC.text_to_be_present_in_element((By.XPATH, "/html/body/form/div[4]/div[2]/div/table/tbody/tr[4]/td/div[1]/div[2]/div[2]/table/tbody/tr[5]/td/table/tbody/tr[2]/td/div/div/table/tbody/tr[1]/td[1]"), (first_value)))

enter image description here

【问题讨论】:

标签: python selenium variables selenium-webdriver xpath


【解决方案1】:

您可以使用get_attribute('outerHTML') 提取表格的整个HTML。然后使用pandas 库或像这样的一些简单解析器解析整个表:https://github.com/yuanxu-li/html-table-extractor,它将为您提供一个 python 对象。

然后比较值。这应该不太容易出错。

开始你的 XPATH 分别为//tr[@class='GridRowDefault']/...//tr[@class='GridAltRowDefault']/...

更新:这是一个很好的扩展来帮助您确定 xpath:https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl?hl=en

【讨论】:

    【解决方案2】:

    以下 XPath:

    //tr[@class="GridAltRow_Default"][1]/td[1]=//tr[@class="GridAltRow_Default"][2]/td[7]
    

    如果绿色箭头编号等于红色箭头编号,将输出TRUE

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-14
      • 2021-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多