我有一个HTML单选框,选择是或否。 但是Yes和Not类具有相同的类名。
是的代码
<div class="quantumWizTogglePaperradioRadioContainer"><div class="quantumWizTogglePaperradioOffRadio exportOuterCircle"><div class="quantumWizTogglePaperradioOnRadio exportInnerCircle"></div></div></div>
禁止使用代码
<div class="quantumWizTogglePaperradioRadioContainer"><div class="quantumWizTogglePaperradioOffRadio exportOuterCircle"><div class="quantumWizTogglePaperradioOnRadio exportInnerCircle"></div></div></div>
使用此代码时,该程序单击单选框形式的第一个。
radioButton = String.format("//div[@class='quantumWizTogglePaperradioOffRadio exportOuterCircle']");
driver.findElement(By.xpath(radioButton)).click();
我怎么认出他们?
答案 0 :(得分:0)
我建议使用绝对XPath而不是相对XPath来解决。请在下面使用Google搜索栏查看绝对XPath与相对XPath有何不同。
d = ('Cost': [44439, 43936, 44464, 41533, 46343],
'A': [515, 929, 800, 979, 1165],
'B': [541, 710, 675, 1147, 939],
'C': [928, 711, 824, 758, 635, 901])
df = pd.DataFrame(data=d)
或者您可以使用其他元素的引用,例如,假设您之前有一个带有yes和no选项的div,且id =“ Radiobutton”。您仍然可以按以下方式识别是和否
是-Relative XPath - `//*[@id="tsf"]/div[2]/div/div[1]/div/div[1]/input`
absolute XPath - `/html/body/div/div[3]/form/div[2]/div/div[1]/div/div[1]/input`
否-//*[@id="Radiobutton"]/div[1]
让我知道是否需要澄清
您可以在单选按钮上方看到,我可以举一个例子。因此我们正在尝试以黑色突出显示div中单选按钮的可能路径。与您的问题类似,它具有相同的类名。所以下面是一些可行的方法
相对XPath使用表单ID(位于层次结构中)
//*[@id="Radiobutton"]/div[2]
使用绝对路径-绝对路径是跟踪从顶部到元素的层次结构。在这种情况下
Yes - `//*[@id="create-form"]/div[3]/div/div/div/ul/li/div[2]/div/div/div[1]`
No - `//*[@id="create-form"]/div[3]/div/div/div/ul/li/div[2]/div/div/div[2]`
如果您在此处看到1和2之间的差异。在绝对路径中,它从HTML标记开始并跟踪DOM树中的元素,而不是从表单id作为参考。
答案 1 :(得分:0)
如果只有两个单选框,请按顺序使用它
第一个单选框:
radioButton = String.format("(//div[@class='quantumWizTogglePaperradioOffRadio exportOuterCircle'])[1]");
第二个单选框:
radioButton = String.format("(//div[@class='quantumWizTogglePaperradioOffRadio exportOuterCircle'])[2]");