我有一个需要逐个编辑的表单列表,其中我必须首先识别表单标题,然后单击JavaScript链接以打开它的编辑模板。
在下面的示例代码中,我需要标识作为表单标题的文本Another Custom Form (Mobile)
,然后点击a href
值为onclick
的{{1}}链接。这是形式标题的第二个兄弟。我正在尝试用Python执行此任务。
editProjectFormType

到目前为止,我使用了以下不完整的代码,不知道下一步该做什么
<tr class="trbg2">
<td width="10%" align="left" nowrap="nowrap">
<div align="center">
<input type="checkbox" name="selectedFormType" value="2192454$$rmymiK" checked="checked">
</div>
</td>
<td width="10%" align="left" nowrap="nowrap"><img src="https://dmsak.qa.asite.com/images/dots.gif" width="6" height="15">!!!!!!!!!!!!!!!!!!!!!!!!!!!!Ashish_test!!!!!!!!!!</td>
<td width="10%" align="left">Custom forms</td>
<td width="10%" align="center">ACFM</td>
<td width="24%">Another Custom Form (Mobile)</td>
<td width="20%">Custom</td>
<td align="center" width="15%">
<a href="javascript:void(0);" onclick="editProjectFormType('2192454$$rmymiK');">
<img src="https://dmsak.qa.asite.com/images/i_editfgt.gif" width="16" height="20" border="0">
</a>
</td>
<td align="center" width="15%">
<a href="javascript:void(0);" onclick="downloadFormTemplate('2192454$$rmymiK');">
<img src="https://dmsak.qa.asite.com/images/f_dow_tmple.gif" width="22" height="22" border="0" alt="Click here to Download Template" title="Click here to Download Template">
</a>
</td>
</tr>
答案 0 :(得分:1)
我会通过以下方式来解决这个问题:
for (MyRow myRow : allRows) { if (myRow.name.equals("Another Custom Form (Mobile)")) { return myRow; } }
myRow.editProjectForm()
答案 1 :(得分:1)
您可以使用以下单link
点击xPath
点击Another Custom Form (Mobile)
,您可以在其中提供文字following-sibling
以识别他们的link
并获取link = browser.find_element_by_xpath("//td[contains(text(),'Another Custom Form (Mobile)')]/following-sibling::td/a[contains(@onclick, 'editProjectFormType')]")
link.click()
,如下所示: -
WebDriverWait
<强>被修改.. 强>
实施element
以获取link = WebDriverWait(browser, 10).until(EC.visibility_of_element_located((By.XPATH, "//td[contains(text(),'Another Custom Form (Mobile)')]/following-sibling::td/a[contains(@onclick, 'editProjectFormType')]")))
link.click()
,如下所示: -
element
注意: - 如果目标frame
位于frame
内。您需要先以browser.switch_to_frame("frame name or id")
切换到element
,然后按上述方式查找目标public static class Extensions
{
public static TAttribute GetAttribute<TAttribute>(this Enum enumValue)
where TAttribute : Attribute
{
return enumValue.GetType()
.GetMember(enumValue.ToString())
.First()
.GetCustomAttribute<TAttribute>();
}
}
。
希望它会帮助你...... :)
答案 2 :(得分:0)
第一个对我有用,做了一些修改。 我在单个 td 中有 3 个按钮,其他 4 个 td 有文本。我必须根据一个 td 值(例如 customer_name)单击特定按钮。下面是代码。
self.driver.find_element_by_xpath(
"//td[contains(text(),'" + customer_name + "')]/following-sibling::td/button[text()='Accept']"
).click()