【发布时间】:2020-05-22 10:08:47
【问题描述】:
我是 Selenium 的新手,我已经浏览了网站教程 https://www.guru99.com/handling-dynamic-selenium-webdriver.html 以了解如何获取 Web 表的行数和列数。
但是在我们的网站测试中,我们需要做一些更高级的操作。 web表类似于演示网站http://demo.guru99.com/test/web-table-element.php。
问题:
- 我的表格行值将是动态的,例如第一次加载(“BEML Ltd. A 253.1 327.4 + 3.7”)行号将是第 6 位。可能下次该行将显示在第 10 位,因为要添加更多行。
- 现在如何从第三列(“Previous close RS”)中找到特定值,例如“253.1”?
- 根据匹配值,我必须单击第一列中可用的相应按钮(例如“BEML Ltd” - 网站链接)。演示网站在第一列中只有一个链接。但是我的测试网站有三个按钮:Hold、Close、Open。
我已尝试使用以下代码,但无法单击并导航到相应的屏幕。
try:
WebDriverWait(self.driver, 10).until(EC.presence_of_all_elements_located((By.TAG_NAME, 'td')))
table= self.driver.find_element(By.ID, 'TableGrid')
trs = table.find_elements_by_tag_name('tr')
for tr in trs:
tds = tr.find_elements_by_tag_name('td')
for td in tds:
match_obj = re.search('searching Text', td.text)
print(match_obj)
if match_obj and match_obj.group(1) == '0':
success_button = tr.find_element_by_css_selector('button.btn-success')
print(success_button.get_attribute('type'))
success_button.click()
except :
pass
OK.simply 我问的是如何匹配动态增长网络表中任何列中的特定值(行索引不固定)并单击第一列特定行中可用的按钮?
【问题讨论】:
-
我无法理解您想要的输出。你能说出你想要的输出吗?
标签: python selenium selenium-webdriver xpath