所以我有一个同时包含文本和链接的表格单元格。现在,此表中的每一行都有相同的文本链接超链接标题“ [Details]”,但是位置会根据您所在的行而改变。
例如,单元格将如下所示:“我想要的文本” [详细信息]
我希望能够根据该单元格中还包含哪些文本来转到正确的链接,但是在弄清楚如何在Python中进行编码时遇到了一些问题。单击该表中的一行后,它将在表中移动它的位置,因此不再使用Xpath。
这是我尝试过的:
filepath.putFile(resultUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull final Task<UploadTask.TaskSnapshot> task) {
if (task.isSuccessful()) {
final String down_url = task.getResult().getDownloadUrl().toString();
UploadTask p_UpTask = th_filepath.putBytes(tumb_p_byte);
p_UpTask.addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> thumb_task) {
final String th_pURl = thumb_task.getResult().getDownloadUrl().toString();
if (task.isSuccessful())
{
Map upd_us = new HashMap();
upd_us.put("image",down_url);
upd_us.put("th_image",th_pURl);
mDbEditAcc.updateChildren(upd_us).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Toast.makeText(getApplicationContext(), "Successfully", Toast.LENGTH_LONG).show();
Picasso.get().load(th_pURl).into(edit_img);
}
}
});
}
}
});
} else {
Toast.makeText(getApplicationContext(), "Try again later", Toast.LENGTH_LONG).show();
}
}
});
MyText = driver.find_element_by_xpath("//span[text()='My Desired Text']")
MyText.find_element_by_partial_link_text("Details").click()
但是我认为我需要使用
def click_me(myString):
WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.XPATH, "//td/span[.='" + myString + "']//following::span[2]"))).click()
click_me("My Desired Text")
语句才能真正获得所需的结果。任何建议,将不胜感激。
if
答案 0 :(得分:1)
由于该表由多个文本和与 Details 相同的文本组成的关联链接组成,因此您可以编写以下方法:
def click_me(myString):
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//td/span[.='" + myString + "']//following::span[2]"))).click()
现在,您可以使用任何所需的文本来调用此方法以单击关联的链接:
click_me("My Desired Text")
# or
click_me("My Text")
# or
click_me("Text")