gpt4 book ai didi

python - Selenium Python 2 按名称和值查找元素?

转载 作者:太空狗 更新时间:2023-10-30 01:46:31 25 4
gpt4 key购买 nike

我一直试图在网页上定位一个元素,这个元素与其他元素同名但没有id。它确实有不同的值,所以我想通过名称和值找到元素。

在我的网页中有一个搜索按钮:

<input name="action" value=" Search " style=" border-style2;  font-size: 11;
font-family: arial, helvetica" border="0" type="submit">

我不能使用名称,因为我有另一个具有相同名称和类型的元素:

<input name="action" value=" Go " onclick=" return custRange('cust', 'd_custno');"
style=" border-style2; font-size: 11; font-family: arial, helvetica"
border="0" type="submit">

因此我尝试使用 xpath,我首先使用 xpath 检查器返回返回的 xpath:

/x:html/x:body/x:center/x:table/x:tbody/x:tr/x:td/x:center/x:center[1]/x:table[2]/x:tbody/x:tr/x:td[1]/x:table[3]/x:tbody/x:tr[5]/x:td[2]/x:input[2]

这又很新,但我假设“x:”不应该在路径中,所以我删除了它并尝试找到具有以下元素的元素:

search = driver.find_element_by_xpath("//center[1]/table[2]/tbody/tr/td[1]/table[3]/tbody/tr[5]/td[2]/input[2]")
search.clickAndWait()

结果是:

selenium.common.exceptions.NoSuchElementException: Message: 'Unable to find element with xpath == //center[1]/table[2]/tbody/tr/td[1]/table[3]/tbody/tr[5]/td[2]/input[2]'

所以我真的有 2 个问题,如果有人可以提供帮助,那就太好了:

  1. 有没有办法通过名称和值来识别元素?
  2. 显然我在 xpath 中遗漏了一些东西,我尝试使用 xpath 的方式不正确吗?如果可以,您能指出我做错了什么吗?

非常感谢任何帮助。

为了完整起见,我的单元测试代码如下:

import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

class umLoginTest(unittest.TestCase):

def setUp(self):
self.driver = webdriver.Ie()
self.driver.implicitly_wait(3)

def test_login_to_um(self):
driver = self.driver
result_file = open("umLoginTest_result.txt", "w")
driver.get("http://ps-iweb/UserManage/Home")
self.assertIn("Welcome", driver.title)
elem = driver.find_element_by_name("userLogin")
elem.send_keys("pstevenson")
password = driver.find_element_by_name("sec_password")
password.send_keys("etc")
password.send_keys(Keys.RETURN)
test1 = driver.title
result_file.write(str(test1))
select = driver.find_element_by_name("conn_marketid")
for option in select.find_elements_by_tag_name('option'):
if option.text == 'Int Rate Swaps':
option.click()
search = driver.find_element_by_xpath("//center[1]/table[2]/tbody/tr/td[1]/table[3]/tbody/tr[5]/td[2]/input[2]")
search.clickAndWait()

result_file.close()

if __name__ == "__main__":
unittest.main()

最佳答案

试试这个

//input[@name='action' and @value=' Search ']

关于python - Selenium Python 2 按名称和值查找元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24992511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com