使用Selenium(Python),我们如何将By locater = By.id("username")
WebElement elem = driver.findElement(locater)
elem.SendKeys("tester")
对象传递给findElement()?
Java (这可行)
locater = By.id("username")
elem = driver.find_element(locater)
elem.send_keys("tester")
Python (此操作失败)
'str' object is not callable
我在python中遇到的错误是Newtonsoft.json
。
我在其他SO对话中看了这个,因为python期望类似By.ID或By.XPATH等。
我需要一种传递By对象的方法并且想知道它是可能的。提前谢谢。
答案 0 :(得分:3)
在Python
By.XPATH
中不是类By()
的方法,而是字符串变量:
By.XPATH == "xpath"
尝试实现以下代码:
from selenium.webdriver.common.by import By
locator = (By.XPATH, oSignUp.listformfieldxpaths[0])
elem = oDriver.getdriver().find_element(*locator)
elem.send_keys("tester")
请注意,find_element()
应该收到2个参数:by
和value
。两者都是strings
答案 1 :(得分:1)
我相信这应该有效。试一试
xpath = oSignUp.listformfieldxpaths[0]
elem = oDriver.getdriver().find_element(By.XPATH, xpath)
elem.send_keys("tester")
答案 2 :(得分:0)
$ cat f
label1 name
1
label2 id
2
label3 id
0
label4 id
label5 id
10
$ awk '/label/ {k=$0;getline tmp;if(tmp > 0) {print k,tmp}}' f
label1 name 1
label2 id 2
label5 id 10
或
web_element=driver.find_element(By.ID,'id_value')
find_element有两个参数,第一个是定位器策略,第二个是定位器值。
方法签名
web_element=driver.find_element('id','id_value')