公司内部网页的一部分如下:
这是网页的第一种形式。我想输入数字到这种形式。
问题在于,刷新网页时元素ID正在更改。因此,我对driver.find_element_by_xpath和driver.find_element_by_css_selector感到厌倦,它不会每次都捕获表单。
因此,我想也许可以找到文本“客户编号”的行,然后移至下一个元素,这可能是一个选择。但同样,“学生编号”的元素ID也在改变。
是否可以通过文本“ Student No.”来获取表格?还是有更好的选择?谢谢。
部分HTML代码如下:
<div class="labeledField">
<div class="fieldLabel beanRequiredField">Student No.</div>
<div class="field"><span id="id16">
<div>
<input type="text" class="inputField" value="" name="tabs:r:0:c:0:c:field:c:p:r:0:c:0:c:field:c:frag:component" id="id4e" customid="StudentId" autocomplete="off">
</div>
</span></div>
</div>
答案 0 :(得分:1)
也许这可以解决您的问题:
WebDriverWait等待=新的WebDriverWait(驱动程序,15); wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(“ // input [@ id ='text3']”))));
答案 1 :(得分:1)
如果要基于“学生编号”字符串,那么您可以使用XPath选择器:
//div[text()="Student No."]/../div[2]/span/div/input
因此对于Python来说,将是这样的:
input = driver.find_element(By.XPATH, '//div[text()="Student No."]/../div[2]/span/div/input')
答案 2 :(得分:1)
driver.find_elements_by_class_name('inputField')[0].send_keys('Text')
有效!