我无法在网页框上访问文本框,这是一个动态元素。我试图通过xpath上的许多属性对其进行过滤,但似乎id和name上更改的数字是元素xpath唯一的唯一部分。我尝试的所有过滤器均显示至少3个元素。我已经尝试了2天,真的需要这里的帮助。
from selenium import webdriver
def click_btn(submit_xpath): #clicks on button
submit_box = driver.find_element_by_xpath(submit_xpath)
submit_box.click()
driver.implicitly_wait(7)
return
#sends text to text box
def send_text_to_box(box_xpath, text):
box = driver.find_element_by_xpath(box_xpath)
box.send_keys(text)
driver.implicitly_wait(3)
return
descr = 'Can't send this text'
send_text_to_box('//*[@id="textfield-1285-inputEl"]', descr)' #the number
#here is the changeable part on the xpath
edit:它现在可以与以下xpath一起使用// input [contains(@id,'textfield')and contains(@ aria-readonly,'false')and contains(@class,'x-form-invalid- field-default')]。希望我在此元素上找到了一些特定的东西:
答案 0 :(得分:1)
您可以使用部分字符串而不是完全匹配来查找元素。也就是说,代替
send_text_to_box('//*[@id="textfield-1285-inputEl"]', descr)'
请尝试send_text_to_box('//*[contains(@id,"inputEl")]', descr)'
如果在id中有多个具有字符串“ inputE1”的元素,则应该寻找其他保持不变的东西(可能还有其他属性)。否则,请尝试查找其他元素,然后遍历所需的输入。